ホームページ >ウェブフロントエンド >jsチュートリアル >「https://example.com/」を許可しているにもかかわらず、オリジン「https://example.com」からのアクセスがブロックされるのはなぜですか?
クロスオリジンのリソースにアクセスしようとすると、開発者は Access-Control-Allow-Origin ヘッダーに関連する問題に遭遇することがよくあります。これらの問題を解決する鍵は、CORS プロトコルのコンテキストにおける「オリジン」の正確な意味を理解することにあります。
CORS では、オリジンはスキーム、ホスト (ドメイン)、およびポートの組み合わせです。重要なのは、パスが含まれていないことです。したがって、次の 2 つの起源は別のものとみなされます:
この特定のケースの問題は、origin の定義の誤解から生じます。具体的には、CORS プロトコル仕様に従って、許可されたオリジンの末尾のスラッシュは許可されません。その結果、ブラウザによって送信されたオリジン ヘッダー (末尾のスラッシュなし) は、サーバーで設定された許可されたオリジンと一致しません。
この問題を解決するには、CORS 構成で許可されている起点の値から末尾のスラッシュを削除するだけです。この場合、許可される正しいオリジンは次のようになります:
この変更により、ブラウザのオリジン ヘッダーはは許可されたオリジンと一致し、CORS は正常に許可されます。
以上が「https://example.com/」を許可しているにもかかわらず、オリジン「https://example.com」からのアクセスがブロックされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。