リスティング広告 運用代行サービス|株式会社カルテットコミュニケーションズ|Yahoo広告/Google広告正規代理店

Ajaxのクロスドメイン制約

公開日:
更新日:

Ajaxについては以前にも簡単にご紹介しました

簡単に言うと、JavaScriptのXMLHttpRequestという組み込みクラスを利用して、すでに読み込んだページからさらにHTTPリクエストを発行することによってページ遷移なしでページの一部を動的に書き換える技術のことです。

何かと便利なAjaxですが、実はセキュリティ上の理由から、ドメインをまたぐ通信は出来ないようになっています。XMLHttpRequestクラスの「同一生成元ポリシー(Same-Origin-Policy)」によるものですが、俗にAjaxのクロスドメイン制約などと呼ばれます。

つまり、

ドメインA上のページからドメインA上のページにAjaxでアクセス → OK
ドメインA上のページからドメインB上のページにAjaxでアクセス → NG

というわけです。

JSONPという例外

ただし、例外的にクロスドメインでAjaxを利用できる方法があります。それが、JSONPを使う方法です。

JSONPとは、JSONデータを引数に取るような関数のコールバックコードをサーバから受け取り、script要素のsrc属性を使ってインポートするというものです。これは、script要素によって外部のJavaScriptファイルをインポートする場合には別ドメインのファイルが参照可能という仕様を利用してクロスドメイン制約を回避する技術です。

当然のことながら、JSONPによってクロスドメインAjaxが使用できるのは、Ajaxで通信したい相手のWebサーバがJSONP形式の文字列を返すよう実装されている場合のみです。

まとめ

クロスドメインでAjax通信したいシーンはそう珍しくないと思いますが、セキュリティ上の理由から主要なブラウザには基本的にクロスドメイン制約が掛かっています。

状況によってはJSONPを上手く使えば問題を解決できるかも知れませんので、覚えておいて損はないと思います。

1営業日以内に返信いたします 広告の運用代行についてのお問い合わせはこちら
シェアする

ブログ記事の中で広告運用の事例をご紹介することがありますが、実際の事例を一部加工した内容となっておりますのでご留意ください。

また、2018年7月24日よりGoogle AdWordsはGoogle広告に名称変更されました。それ以前の記事に関してはGoogle AdWordsと表記されておりますのでご了承ください。


リスティング広告の
情報をお届け

メルマガではリスティング広告に詳しくなれる記事を毎週一週間分まとめてお届けします。不定期にはなりますがリスティング広告に限らず、Web集客改善に繋がる資料もお送りしていきますので、興味のある方はぜひご登録ください。

同じカテゴリの最近の記事