この手順に従って、サーバーをセットアップしてCORSを有効にしました。 https://docs.Microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-Origin-requests-in-web-api
しかし、今ではブラウザー開発コンソールで、次のエラーメッセージが表示されます。
XMLHttpRequestをロードできません https:// serveraddress/abc 。プリフライトの応答が無効です(リダイレクト)
私はそれを修正するために何ができるか知っていますか? HTTPSでCORSリクエストを作成しています。それが「プリフライトが無効(リダイレクト)」の障害の原因だと思います。しかし、OPTIONSリクエストをリダイレクトする理由や理由はわかりません。
ありがとうございました。
コードにより、ブラウザが 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
_以外の場合ブラウザがプリフライトを実行する必要を避けるためにコードを変更できない場合、別のオプションは次のとおりです。
Location
要求に対する応答のOPTIONS
応答ヘッダーのURLを調べます。URLの違いは、パスの末尾のスラッシュのような単純なものかもしれません。たとえば、コード内のURLを_http://localhost/api/auth/login/
_ではなく_http://localhost/api/auth/login
_(末尾のスラッシュに注意)に変更する必要がある場合があります。 (末尾のスラッシュなし)。
ブラウザdevtoolsの[ネットワーク]ペインを使用して、OPTIONS
リクエストへの応答を調べ、Location
応答ヘッダーの値でリダイレクトURLを見つけることができます。