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