Ian の回答に従って、JSONP を使用して SOP によって提示されたドメインの壁を越えて AJAX を取得できます。JSONP とは何ですか? これは、誰もが知っていて大好きな同じ JSON オブジェクトですが、次の関数でラップされています: JSON:
{
prop1: "a",
prop2: 7
}
JSONP:
myfunction(
{
prop1: "a",
prop2: 7
});
ご覧のとおり、JSON オブジェクトはパラメーターとして
myfunction
関数に渡されます。したがって、単純なタグを使用して別のドメインでホストされているスクリプト リソースにリンクし、そのリソースが JSONP データを返した場合、JSON オブジェクトを受け入れる
script
関数を定義して、それを処理することができます。
JQuery は、 getJSONメソッド
myfunction
を使用した JSONP Ajax 呼び出しをサポートしています。AJAX 呼び出しを行うのではなく、jQuery は、データを取得しようとしている URL を指すタグを挿入します。スクリプトが読み込まれると、コールバック関数が実行され、出来上がりです! - JSON データがあります。この手法には 3 つの前提条件があります。
script
- データをリクエストしようとしているサービスは、JSON を返します (デフォルトで、またはパラメーターを使用したリクエストで)。
- このサービスは、JSON データをラップするコールバック関数を指定できるようにすることで、JSONP をサポートします。
- この外部ソースを信頼して、サイトでコードを実行できるようにします。