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