JSONP 【JSON with Padding】
概要
JSONP(JSON with Padding)とは、JavaScriptにおけるオブジェクトの表記法を応用したデータ形式であるJSONに、関数呼び出しなどのコードを付加したもの。Webブラウザが表示しているWebページとは別のドメイン(クロスドメイン)のデータを呼び出して利用する場合などに用いられる。WebブラウザのJavaScript実行環境には「同一生成元ポリシー」(SOP:Same-Origin Policy)という制約があり、あるWebページのスクリプトから、そのページとは異なるドメインに所属するデータを読み込むことはできないようになっている。
JSONPでは、HTMLのscriptタグの読み込みにはSOP制限がないことを利用し、JSONデータを関数呼び出しの引数の形で記述する。Webページ側のスクリプトに同名の関数を用意して引数を受け取るコードを書いておくと、JSONPをscriptタグで読み込んだあとにその関数が実行され、Webページ側へJSONデータが引き渡される。
Webページ側とサーバ側ではどのような関数名を用いるかあらかじめ申し合わせておかなければならないが、サーバ側では関数名をクエリ文字列(URLパラメータ)として受け取り、その関数名でJSONPを構成して送り返すという仕組みを採用していることが多い。
(2022.5.10更新)