ホームページ >ウェブフロントエンド >jsチュートリアル >jQuery AJAX JSONP リクエストがクロスドメイン ソースからデータを返せないのはなぜですか?
提供されたコードで jQuery AJAX を使用して JSON 配列データを解析しようとすると、ユーザーは出力を受信しません。
クロスドメイン AJAX 呼び出しが機能するには、Web サービスが JSONP のメソッド インジェクションをサポートしている必要があります。クライアント コードは有効であるように見えますが、問題は Web アプリケーションと Web サービスのドメインにある可能性があります。
jQuery の dataType: 'jsonp' を使用する場合、パラメーター ?callback={some_random_dynamically_generated_method} がクエリURL。このメソッドは、次のようにウィンドウ オブジェクト内でプロキシとして機能します。
window.some_random_dynamically_generated_method = function(actualJsonpData) { successCallback(actualJsonData); // Calls the success function passed to $.ajax }
問題に対処するには、JSON をラップするようにサーバー側のコードを変更する必要があります。クエリ文字列で渡されたものと一致する関数名のデータ。たとえば、クエリ文字列に ?callback=my_callback_method が含まれる場合、サーバーの応答は次のようになります:
my_callback_method({your json serialized data})
以上がjQuery AJAX JSONP リクエストがクロスドメイン ソースからデータを返せないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。