gpt4 book ai didi

cors - 如何解决 'preflight is invalid (redirect)' 或 'redirect is not allowed for a preflight request'

转载 作者:行者123 更新时间:2023-12-03 14:48:48 35 4
gpt4 key购买 nike

我已按照此步骤设置我的服务器以启用 CORS。
https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api

但是现在在我的浏览器开发控制台中,我看到以下错误消息:

XMLHttpRequest cannot load https://serveraddress/abc. Response for preflight is invalid (redirect)



你知道我能做些什么来修复它吗?我正在 HTTPS 中发出 CORS 请求。我认为这是导致“预检无效(重定向)”失败的原因。但我不知道为什么或什么正在重定向 OPTIONS 请求。

谢谢你。

最佳答案

简短回答:使代码中的请求 URL 不缺少尾部斜杠。
缺少尾随斜线问题是问题中引用的错误的最常见原因。
但这不是唯一的原因——只是最常见的原因。请阅读以获得更多详情。
当您看到此错误时,表示您的代码正在触发浏览器发送 CORS preflight OPTIONS request ,服务器响应 3xx重定向。为避免错误,您的请求需要获取 2xx成功响应。
您可以调整代码以避免触发浏览器发送 OPTIONS要求。
至于在这种情况下发生了什么,重要的是要知道浏览器在以下情况下会执行 CORS 预检:

  • 请求方法不是 GET , HEAD , 或 POST
  • 您设置了除 Accept 之外的自定义请求 header , 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 中的 URL对 OPTIONS 的响应中的响应头要求。
  • 更改您的代码以直接向该其他 URL 发出请求。

  • URL 之间的区别可能就像路径中的尾部斜杠一样简单——例如,您可能需要更改代码中的 URL 以添加尾部斜杠——例如, http://localhost/api/auth/login/ (注意尾部斜杠)而不是 http://localhost/api/auth/login (没有尾部斜杠)——或者你可能需要删除尾部斜杠。
    您可以使用浏览器开发工具中的网络 Pane 来检查对 OPTIONS 的响应。请求并在 Location 的值中找到重定向 URL响应头。

    关于cors - 如何解决 'preflight is invalid (redirect)' 或 'redirect is not allowed for a preflight request',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42168773/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com