Failed to fetch - CORSポリシー違反
CORSポリシー違反によるFailed to fetchエラーの原因と解決策
概要
クロスオリジンリクエストがサーバーのCORSポリシーによりブロックされている場合に発生します。ブラウザのセキュリティ機能により、異なるオリジン(ドメイン・ポート・プロトコル)へのリクエストが制限されます。
この原因かどうかの確認方法
Consoleに以下のようなメッセージが出る場合、CORSが原因です:
Access to fetch at 'https://api.example.com' from origin 'https://your-site.com'
has been blocked by CORS policy
または:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
解決策
1. サーバー側でCORSヘッダーを追加(推奨)
Express.js:
| |
Django:
| |
Flask:
| |
Go (net/http):
| |
Nginx:
| |
2. 開発環境ではプロキシを使用
Vite:
| |
Next.js:
| |
よくある間違い
Access-Control-Allow-Origin: *を本番環境で使用する(セキュリティリスク)- credentials: true と Access-Control-Allow-Origin: * を同時に使用する(動作しない)
- OPTIONSプリフライトリクエストを処理していない
まだ解決しない場合
→ 診断ハブに戻る
関連エラー
関連エラー
JavaScript の他のエラー
この記事は役に立ちましたか?