jsonpはなぜクロスドメイン制約に引っ掛からないのか
・json( JavaScript Object Notation )
JavaScriptの中でオブジェクト(人間が分かりやすいような形)を記述する書式。
例.
{
"name": "Sakurai",
"age": "34",
"address": "Tokyo",
"result": true
}
関数に引数としてJSONオブジェクトを指定し、クロスドメイン間でのデータを扱える形式。
関数名+取得データで異なるドメインに置いてあるスクリプトファイルを読み込むことが出来る。
APIから返されるコールバック関数と同じ名前( callbackFunc(jsonデータ) )で定義しておくと、
データを読み込んだときにその関数が実行される。
例.
callbackFunc(
{
"name": "Sakurai",
"age": "34",
"address": "Tokyo",
"result": true
}
)
でも、なんでjsonpだとクロスドメイン制約に引っ掛からないのか。
別のドメインからデータを取ってこれるんだったらセキュリティ的にヤバイんじゃないの?
と思って気になってしらべたところ、セキュリティに関して説明されてるページを見つけた(古いけど)。
第3回 JSONPでのクロスドメインアクセス:ここが危ない!Web2.0のセキュリティ|gihyo.jp … 技術評論社
JSONPで公開している場合は、そもそも機密情報を含まない。
はてなとかyahooとか、オープンなAPIを提供するために使われることが多いよう。
JSONP形式になってる=厳格なセキュリティ不要な広く公開されてるサービスってことですね。
というかむしろ、機密情報をJSONPで公開してたらまずいってことですね(゜゜)!