戻る

JSONP

JSONPの特徴

JSONPは本来JSON形式のデータ構造では、クロスドメイン制限により読み込むことができないため、JSON形式のデータを関数の形にして読み込むことによって、外部サーバーのJavaScript関数を実行する形になり、クロスドメイン制限を回避することができる、JavaScriptの脆弱性を利用したデータフォーマットです。

PHPなどのサーバーサイド技術を使ってAPIを利用できない環境では非常に便利ですが、セキュリティ的に問題があるため、顧客情報などの個人情報を持ったAPIを想定している場合は、JSONP形式のデータフォーマットを使うのは避けたほうがよいでしょう。

callback({"empinfo":
	{
		"employees":[
			{
				"name":"山田",
				"salary":"20万",
				"age":24
			},
			{
				"name":"鈴木",
				"salary":"27万",
				"age":35
			},
			{
				"name":"佐藤",
				"salary":"35万",
				"age":46
			}
		]
	}
})
				

右図のようにコールバック関数が定義されあるものととして、引数となるJSON形式のデータをそのまま返す、コールバック関数を、外部サーバーから実行するかのように、JSONP形式のAPIをJavaScriptから使うことができます。

XMLやJSON形式でしか提供されていないWEBサービスであっても、PHPなどのサーバーサイドで変換する仕組みを1つ作っておけば、JSONP形式のAPIとして利用することができます。

inserted by FC2 system