「要求されたリソースに Access-Control-Allow-Origin ヘッダーが存在しない」理由
問題は、ブラウザーがクロスオリジン リクエスト (CORS) を行う場合にあります。 )、ブラウザはまずサーバーにプリフライト リクエストを送信して、サーバーが CORS をサポートしているかどうか、サポートしている場合はどのメソッド、ヘッダー、およびオリジンが許可されているかを確認します。
サーバーは、プリフライト リクエストに次のように応答する必要があります。適切な CORS ヘッダー。サーバーが必要なヘッダーで応答しない場合、ブラウザーは実際のリクエストをブロックします。
この場合、サーバーは Access-Control-Allow-Origin ヘッダーで応答せず、ブラウザーに次のことを伝えます。オリジンはリソースへのアクセスを許可されています。
修正方法
この問題を修正するには、いくつかの方法があります。
- Access-Control を追加します。プリフライトリクエストの応答へのAllow-Originヘッダー。これは、コード内でミドルウェアを使用することで実行できます。
- すべてのオリジンを許可するには、Access-Control-Allow-Origin ヘッダーを '*' に設定します。ただし、これはセキュリティ上の理由から推奨されません。
- 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 サイトの他の関連記事を参照してください。