加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何在CORS中解决’预检无效(重定向)’

发布时间:2020-12-16 00:02:11 所属栏目:asp.Net 来源:网络整理
导读:我已按照此步骤设置我的服务器以启用CORS. https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api 但现在在我的浏览器开发控制台中,我看到此错误消息: XMLHttpRequest cannot load 07001. Respons
我已按照此步骤设置我的服务器以启用CORS.
https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api

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

XMLHttpRequest cannot load 07001. Response for
preflight is invalid (redirect)

你知道我该怎么做才能修好它?我在HTTPS中发出CORS请求.我认为这导致’预检无效(重定向)’失败.但我不知道为什么或什么是重定向OPTIONS请求.

谢谢.

解决方法

您的代码导致您的浏览器发送执行重定向的 CORS preflight OPTIONS request.

在这种情况下,浏览器目前拒绝遵循重定向,因为CORS规范以前需要浏览器才能这样做.该限制实际上不再符合规范,但浏览器需要更新其实现以匹配规范更改.

您可以调整代码以避免触发浏览器发送OPTIONS请求.

至于这种情况的全部情况,首先要注意的是,浏览器在以下情况下进行CORS预检:

>请求方法不是GET,HEAD或POST
>除了接受,接受语言,内容语言,内容类型,DPR,下行链路,保存数据,视口宽度或宽度之外,您还设置了自定义请求标头
> Content-Type请求标头的值不是application / x-www-form-urlencoded,multipart / form-data或text / plain

如果您无法更改代码以避免浏览器需要进行预检,那么另一个选项是:

>检查响应并查看服务器在OPTIONS之后重定向到的URL.
>更改代码以直接向其他URL发出请求.

有关可能的解决方法的详细信息,请参阅CORS request with Preflight and redirect: disallowed. Workarounds?的答案.

同样如上所述,对于不遵循CORS预检重定向的浏览器的限制不再在规范中,但浏览器需要更新其实现以匹配规范更改.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读