ホームページ  >  記事  >  バックエンド開発  >  「No Access-Control-Allow-Origin Header」エラーが表示されるのはなぜですか?

「No Access-Control-Allow-Origin Header」エラーが表示されるのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-02 06:02:29414ブラウズ

Why Am I Seeing the

「要求されたリソースに Access-Control-Allow-Origin ヘッダーが存在しない」理由

問題は、ブラウザーがクロスオリジン リクエスト (CORS) を行う場合にあります。 )、ブラウザはまずサーバーにプリフライト リクエストを送信して、サーバーが CORS をサポートしているかどうか、サポートしている場合はどのメソッド、ヘッダー、およびオリジンが許可されているかを確認します。

サーバーは、プリフライト リクエストに次のように応答する必要があります。適切な CORS ヘッダー。サーバーが必要なヘッダーで応答しない場合、ブラウザーは実際のリクエストをブロックします。

この場合、サーバーは Access-Control-Allow-Origin ヘッダーで応答せず、ブラウザーに次のことを伝えます。オリジンはリソースへのアクセスを許可されています。

修正方法

この問題を修正するには、いくつかの方法があります。

  1. Access-Control を追加します。プリフライトリクエストの応答へのAllow-Originヘッダー。これは、コード内でミドルウェアを使用することで実行できます。
  2. すべてのオリジンを許可するには、Access-Control-Allow-Origin ヘッダーを '*' に設定します。ただし、これはセキュリティ上の理由から推奨されません。
  3. Access-Control-Allow-Origin ヘッダーを応答に追加できるリバース プロキシを使用してください。

追加の注意事項

  • Access-Control-Allow-Origin ヘッダーは、特定のオリジンに対して設定することもできます。たとえば、https://example.com からのリクエストを許可するには、ヘッダーを Access-Control-Allow-Origin に設定します: https://example.com.
  • The Access-Control-Allow- Origin ヘッダーは、クロスオリジンリクエストの場合にのみ必要です。リクエストが同じオリジンからのものである場合、ブラウザーはプリフライトリクエストを送信せず、サーバーは Access-Control-Allow-Origin ヘッダーで応答する必要はありません。

以上が「No Access-Control-Allow-Origin Header」エラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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