クロスドメイン リクエストを解決する方法には、次のものが含まれます。 jsonp は、ページ内のスクリプト タグの読み込みを使用して、クロスドメイン リクエストを実装します。 cors は、応答ヘッダーで指定されたソース ポイントを介して現在のソース ポイントと一致します。クロスドメイン リクエストを実装するには
よく話題になるクロスドメイン リクエストとは、1 つのドメイン内の他のドメイン名からリソースをリクエストすることです。ここでいう他のドメイン名とは、ドメイン名だけを指すのではなく、プロトコル、ドメイン名、ポートなど多くの内容を含みます。そのため、以下の記事では、2つのドメインが異なるものとして扱います。 、ドメインリクエストの問題を解決する方法を詳しく紹介します。
#【おすすめコース: JavaScript チュートリアル #】
##同一オリジン ポリシー
同一オリジン ポリシーに違反するため、操作中にエラーが発生することがあります。同一オリジン ポリシーは、異なる文書間のやり取りを制限するためにブラウザによって実装されるセキュリティ対策です。起源。ページの起点は、そのプロトコル、ホスト、およびポート番号によって定義されます。同じオリジンを持つリソースは、相互に完全なアクセス権を持ちます。ただし、ソースが異なる場合はアクセスが拒否されます。
http://www.a.com/a.js http://www.b.com/a.js 这两个之间就不可以互相访问,因为域名的不相同
上記の 2 つのドメイン名が相互にアクセスしたい場合は、一般に、同一オリジン ポリシーでは、クロスオリジン書き込みは許可されますが、クロスオリジン読み取りは許可されないと規定されています。これは、同一オリジン ポリシーがドメインへのデータの書き込みを妨げないことを意味します。ただし、ドメインからのデータの読み取り、またはドメインから受信した応答に対して何もしないことのみを禁止します。
クロスドメイン リクエスト メソッドJSONP
JSONP はパディング付きの JavaScript オブジェクト表現と呼ばれ、クロスドメインです。ドメイン リクエストは、HTML ページでスクリプト タグを使用して実装し、さまざまなソースからコードをロードできます。 JSONP は、<script> タグがさまざまなソースから取得できるという事実に依存しています。ブラウザが <script> タグを解析すると、スクリプトのコンテンツが取得され、現在のページのコンテキスト内で実行されます。通常、サービスは HTML または XML や JSON などのデータ形式で表されたデータを返します。ただし、JSONP 対応サーバーにリクエストを行うと、実行時にページ指定のコールバック関数を呼び出し、実際のデータをパラメータとして提供するスクリプト ブロックが返されます。同一オリジンの制限、古いブラウザでも互換性が良好ですが、JSONP はクロスドメイン GET リクエストの実行にのみ使用できるため、サーバーは JSONP リクエストを明示的にサポートする必要があります。 </script>
CORS メソッド
は、サーバーがドメイン A にデータの読み取りを要求できることをブラウザーに伝えるメカニズムを提供します。ドメイン B. データ。これは、応答に新しい Access-Control-Allow-Origin HTTP ヘッダーを含めることによって行われます。ブラウザーは、クロスオリジンのオリジンから応答を受信すると、CORS ヘッダーをチェックします。応答ヘッダーで指定された起点が現在の起点と一致する場合、応答への読み取りアクセスが許可されます。そうでない場合は、エラーが報告されます。 jsonp と比較すると、CORS には次の利点があります。
GET リクエストだけでなく、POST などの他のリクエストもサポートします
CORS を使用してデータを送受信できます。 XMLHttpRequest、より優れたエラー処理メカニズムを備えています
概要: 上記がこの記事の全内容です。皆様のお役に立てれば幸いです
以上がクロスドメインリクエストの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。