ホームページ >ウェブフロントエンド >jsチュートリアル >「Access-Control-Allow-Origin」ヘッダーはクロスオリジンリソース共有をどのように制御しますか?

「Access-Control-Allow-Origin」ヘッダーはクロスオリジンリソース共有をどのように制御しますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-23 17:19:11148ブラウズ

How Does the 'Access-Control-Allow-Origin' Header Control Cross-Origin Resource Sharing?

「Access-Control-Allow-Origin」ヘッダーを理解する

クロスドメイン通信の領域では、「Access-Control」 -Allow-Origin' (ACAO) ヘッダーは重要な役割を果たします。これは、異なるドメインやサブドメインなど、異なるオリジンの Web ページがどのように相互作用するかを制御します。一般的な誤解に対処するために、そのセマンティクスと仕組みを詳しく調べてみましょう。

誤解を解く

当初の想定に反して、ACAO ヘッダーは JavaScript コードに広範なアクセス許可を付与していません。クロスオリジンリクエストを実行します。代わりに、次のルールに基づいて動作します:

  • オリジン固有のアクセス許可: ACAO ヘッダーは、リソースへのアクセスを許可されるオリジン (ドメイン、スキーム、ポート) を指定します。 。たとえば、「Access-Control-Allow-Origin: http://siteB.com」が応答ヘッダーとして返された場合、これは http://siteB.com 上のリソースが指定されたリソースにアクセスできることのみを意味します。
  • 応答ベースの認証: ACAO ヘッダーは、サーバーの応答ヘッダーの一部として返されます。これは、リクエストの発信元に関係なく、サーバーからデータを取得または送信することが許可されているオリジンを示します。

クロスオリジン アクセスの有効化

サイト A の JavaScript コードが ACAO を使用してサイト B のリソースにアクセスできるようにするにはheader:

  1. 応答ヘッダーの提供: サイト上のリソースの応答ヘッダーに「Access-Control-Allow-Origin: http://siteA.com」ヘッダーを追加します。
  2. プリフライト リクエスト: を使用するリクエストの場合非標準の HTTP 動詞 (PUT、DELETE など) または非単純なリクエスト ヘッダーの場合、ブラウザはプリフライト OPTIONS リクエストを開始して、そのようなリクエストが許可されているかどうかを確認します。サイト B は、権限を付与するために、プリフライト応答ヘッダーに「Access-Control-Allow-Methods」と「Access-Control-Allow-Headers」を含める必要があります。

注: JSONPクロスオリジン リクエストを有効にする回避策ですが、セキュリティ リスクが発生しやすく、CORS (Cross-Origin Resource) に比べて機能が制限されています。共有)、ACAO ヘッダーに依存します。

以上が「Access-Control-Allow-Origin」ヘッダーはクロスオリジンリソース共有をどのように制御しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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