CORS: preflight request failed
CORSプリフライトリクエストエラーの解決方法
概要
ブラウザのCORSプリフライトリクエスト(OPTIONS)が失敗した場合に発生するエラーです。
エラーメッセージ
Access to fetch at 'https://api.example.com' from origin 'https://myapp.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check
原因
- OPTIONSメソッド未対応: サーバーがOPTIONSに応答しない
- ヘッダー不足: 必要なCORSヘッダーがない
- 認証情報の扱い: credentialsモードとワイルドカード
- カスタムヘッダー: 許可されていないヘッダー
解決策
1. Express.js
| |
2. 手動設定
| |
3. Nginx
| |
よくある間違い
- credentials: trueとorigin: ‘*‘の組み合わせ
- プリフライトキャッシュの設定忘れ
この記事は役に立ちましたか?