ホームページ > ウェブフロントエンド > jsチュートリアル > 同一生成元ポリシーを考慮して、AJAX を使用して異なるドメインからデータを取得するにはどうすればよいですか?

同一生成元ポリシーを考慮して、AJAX を使用して異なるドメインからデータを取得するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-25 16:53:12
オリジナル
395 人が閲覧しました

How Can I Retrieve Data from Different Domains Using AJAX, Considering the Same-Origin Policy?

AJAX を使用した異なるドメインからのデータのリクエスト

クロスドメイン Ajax 呼び出しに関連するセキュリティ上の懸念にもかかわらず、次のドメインからデータを取得する場合には状況が発生します。外部ウェブサイトが必要です。この質問では、固有の制限を考慮して、そのようなデータ交換を実現する可能性を調査します。

クロスドメイン Ajax 呼び出しに対する主な障害は、ブラウザーの Same-Origin Policy (SOP) です。このポリシーは、異なるドメイン上の URL への直接の Ajax リクエストを禁止します。質問が示すように、「http://www.google.com」への Ajax 呼び出しを行おうとすると、ブラウザによってブロックされます。

dataType を「jsonp」に設定すると、クロスドメイン呼び出しが可能になります。 、それは新たな挑戦をもたらします。外部 Web サイトからの応答は JSON 形式ではないため、解析しようとすると構文エラーが発生します。

解決策: サーバー側言語をプロキシとして利用する
以来SOP のため、Ajax の直接呼び出しは許可されていません。解決策は、プロキシとして機能するサーバー側言語を採用することです。この言語は、目的の外部 Web サイトからデータを取得し、それをクライアントのブラウザーに返すことができます。

これを実装する 1 つのアプローチが、提供されたコード スニペットに示されています。コードの jQuery 部分は、「proxy.php」という名前の PHP スクリプトに Ajax リクエストを作成し、外部 Web サイトのアドレスをパラメータとして渡します。外部 Web サイトから応答を受信すると、PHP スクリプト (proxy.php) はその内容をエコーするだけです。このようにして、ブラウザは SOP に違反することなく外部 Web サイトからデータを受信します。

この方法には、サーバーへのデータ (この場合は外部 Web サイトのアドレス) の送信が含まれることに注意することが重要です。副次的なスクリプトのため、セキュリティとデータ プライバシーの観点からの影響を考慮することが重要です。

以上が同一生成元ポリシーを考慮して、AJAX を使用して異なるドメインからデータを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート