ホームページ  >  記事  >  ウェブフロントエンド  >  「https://example.com/」を許可しているにもかかわらず、オリジン「https://example.com」からのアクセスがブロックされるのはなぜですか?

「https://example.com/」を許可しているにもかかわらず、オリジン「https://example.com」からのアクセスがブロックされるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-01 13:26:02535ブラウズ

Why is Access from Origin 'https://example.com' Blocked Even Though I've Allowed 'https://example.com/'?

「https://example.com/」を許可したにもかかわらず、オリジン「https://example.com」からのアクセスがブロックされました

クロスオリジンのリソースにアクセスしようとすると、開発者は Access-Control-Allow-Origin ヘッダーに関連する問題に遭遇することがよくあります。これらの問題を解決する鍵は、CORS プロトコルのコンテキストにおける「オリジン」の正確な意味を理解することにあります。

CORS におけるオリジンの概念

CORS では、オリジンはスキーム、ホスト (ドメイン)、およびポートの組み合わせです。重要なのは、パスが含まれていないことです。したがって、次の 2 つの起源は別のものとみなされます:

  • https://example.com
  • https://example.com/path/to/resource

問題: Origins の末尾のスラッシュ

この特定のケースの問題は、origin の定義の誤解から生じます。具体的には、CORS プロトコル仕様に従って、許可されたオリジンの末尾のスラッシュは許可されません。その結果、ブラウザによって送信されたオリジン ヘッダー (末尾のスラッシュなし) は、サーバーで設定された許可されたオリジンと一致しません。

解決策: 許可されたオリジンから末尾のスラッシュを削除

この問題を解決するには、CORS 構成で許可されている起点の値から末尾のスラッシュを削除するだけです。この場合、許可される正しいオリジンは次のようになります:

  • https://googledocs-clone-sbayrak.netlify.app

この変更により、ブラウザのオリジン ヘッダーはは許可されたオリジンと一致し、CORS は正常に許可されます。

以上が「https://example.com/」を許可しているにもかかわらず、オリジン「https://example.com」からのアクセスがブロックされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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