[解決済み】「プリフライトが無効です(リダイレクト)」または「プリフライト要求に対してリダイレクトは許可されていません」を解決する方法
質問内容
私はこのステップに従って、CORSを有効にするために私のサーバーを設定しました。 https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api
しかし今、ブラウザのdev consoleで、このエラーメッセージが表示されています。
XMLHttpRequest を読み込むことができません。 https://serveraddress/abc . のレスポンスは preflightは無効です(リダイレクト)
どうすればいいかわかりますか? HTTPSでCORSリクエストをしています。それが「preflight is invalid (redirect)」という失敗の原因になっていると思うのですが。 しかし、なぜ、何がOPTIONSリクエストをリダイレクトしているのかわかりません。
ありがとうございました。
解決方法は?
簡単な答え コード内のリクエストURLの末尾にスラッシュがないことを確認してください。
質問で挙げられているエラーの最も一般的な原因は、「末尾のスラッシュがない」という問題です。
しかし、それは のみ 最も一般的な原因です。詳しくはこちらをご覧ください。
このエラーが表示された場合、あなたのコードがブラウザに
CORSプリフライト
OPTIONS
リクエスト
で応答し、サーバは
3xx
リダイレクトされます。このエラーを回避するためには、リクエストに
2xx
成功レスポンスに置き換えます。
を送信するようブラウザをトリガーしないように、コードを調整することができるかもしれません。
OPTIONS
のリクエストに対応します。
この場合、何が起こっているかというと、ブラウザがCORSプリフライティングを行うことを知っておくことが重要です。
-
リクエストメソッドが
GET
,HEAD
またはPOST
-
以外のカスタムリクエストヘッダを設定した場合。
Accept
,Accept-Language
,Content-Language
,Content-Type
,DPR
,Downlink
,Save-Data
,Viewport-Width
またはWidth
-
その
Content-Type
リクエストヘッダの値がapplication/x-www-form-urlencoded
,multipart/form-data
またはtext/plain
もし、ブラウザがプリフライトを行う必要がないようにコードを変更することができない場合は、別の選択肢もあります。
-
のURLを調べます。
Location
のレスポンスヘッダがOPTIONS
リクエストに対応します。 - 代わりにその別のURLに直接リクエストを行うようにコードを変更します。
URLの違いは、パスの末尾のスラッシュのような単純なものかもしれません。たとえば、末尾のスラッシュを追加するために、コード内のURLを変更する必要があるかもしれません - 例,
http://localhost/api/auth/login/
(末尾のスラッシュに注目)ではなく
http://localhost/api/auth/login
(末尾のスラッシュなし) - あるいは、末尾のスラッシュを削除する必要がある場合もあります。
ブラウザのdevtoolsのネットワークペインで
OPTIONS
リクエストの値からリダイレクト URL を探し出し
Location
レスポンスヘッダがあります。
関連
-
[解決済み】「プリフライトが無効です(リダイレクト)」または「プリフライト要求に対してリダイレクトは許可されていません」を解決する方法
-
[解決済み] Access-Control-Expose-Headersはなぜ必要なのですか?
-
[解決済み] プリフライト要求に対する応答がアクセス制御チェックを通過しない
-
[解決済み] アクセス制御-許可-起源のワイルドカードサブドメイン、ポート、プロトコル
-
[解決済み】不透明な応答とは何ですか、そしてそれはどのような目的ですか?
-
[解決済み】ASP.net Core WebAPIでCORSを有効にする方法
-
[解決済み] Dev Tools NetworkでPre-flightリクエストをフィルタリング(非表示)する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン