#author("2021-11-15T02:33:27+00:00","default:k1rou","k1rou") #author("2021-12-14T15:26:12+09:00","default:k1rou","k1rou") *JSONP とは [#r864d953] **名称 [#ld65c1a7] -[[JSON]] with Padding **概要 [#rcc7fef3] -JavaScriptと[[JSON]]を使って[[クロスドメイン通信]]を行う手法。 -通常、[[XMLHttpRequest]]では[[クロスドメイン通信]]ができないが、複数ドメインのJavaScriptファイルを取得できるScript要素<script>を使って、[[クロスドメイン通信]]ができるようにする手法。 -JSONPのセキュリティ上のリスクを低減する技術として、[[CORS]]がある。 *仕掛け [#o18e543b] -JavaScriptの関数の引数としてJSONを指定する。 -呼び出し元のページにscript要素<script>を用意して、srcに別ドメインのURLのパラメータでJavaScriptの関数を指定する。 -ページが読み込み時にJavaScriptの関数が呼び出され、JSONのデータが渡される。 -HTTPリクエストのContent-Typeに指定するメディアタイプは、application/javascript。(application/jsonではない) *理屈 [#l4296a2d] -[[XMLHttpRequest]]は、同一ドメインにしかアクセスできない。 -[[Webブラウザ]]の[[SOP]](Same Origin Policy:同一生成元ポリシー)による。 *関連用語 [#n9d8518f] -[[SOP]] -[[YAML]] -[[WebSocket]] -[[XHR2]] -[[インラインJSONP]]