ホームページ >ウェブフロントエンド >jsチュートリアル >jQuery AJAX JSONP リクエストがクロスドメイン ソースからデータを返せないのはなぜですか?

jQuery AJAX JSONP リクエストがクロスドメイン ソースからデータを返せないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-19 08:51:02673ブラウズ

Why is my jQuery AJAX JSONP request failing to return data from a cross-domain source?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。