Access to fetch has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header
ブラウザでCORSエラーが発生した場合の対処法
概要
CORSエラーは、ブラウザが異なるオリジン(ドメイン、プロトコル、ポート)へのリクエストをブロックした場合に発生します。セキュリティ機能であり、サーバー側の設定が必要です。
エラーメッセージ
Access to fetch at 'https://api.example.com/data' from origin 'https://myapp.com'
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present
on the requested resource.
原因
ブラウザのセキュリティポリシーにより、異なるオリジンへのリクエストにはサーバーの明示的な許可が必要です。
解決策(サーバー側)
1. Node.js / Express
| |
2. Nginx
| |
3. PHP
| |
4. Django
| |
5. Laravel
| |
解決策(開発時のみ)
1. プロキシを使用(推奨)
| |
2. ブラウザ拡張機能
開発時のみ、CORS無効化の拡張機能を使用(本番では使用不可)。
注意点
Access-Control-Allow-Origin: *は認証情報(credentials)と併用不可- プリフライトリクエスト(OPTIONS)への対応が必要
- セキュリティを考慮し、本番環境では特定のオリジンのみ許可
関連エラー
関連エラー
JavaScript の他のエラー
この記事は役に立ちましたか?