在 IE10 的 AJAX CORS 请求中添加自定义标头时,CORS 请求中止
Posted
技术标签:
【中文标题】在 IE10 的 AJAX CORS 请求中添加自定义标头时,CORS 请求中止【英文标题】:CORS request aborted when adding a custom header in AJAX CORS request in IE10 【发布时间】:2016-08-27 10:09:34 【问题描述】:当我将此标头添加到我的 jQueryAjax 请求时:
headers:
"Authorization": "SomeValue"
在服务器上,我将 Authorization 标头添加到
h.Add("Access-Control-Allow-Headers","Authorization");
这在其他浏览器中运行良好,但在 IE10 中不行!
一句话:
如果我注释掉身份验证标头,刷新页面,向我的 web api 发出常规 GET 请求,默认情况下不会触发预检请求。 在该请求之后,我取消注释我的 jquery 请求中的自定义标头,保存,刷新页面,发出带有自定义标头的新请求,然后成功执行!
在 IE 10 Web 开发者工具中,我可以看到一条错误消息:
SCRIPT7002:XMLHttpRequest:网络错误 0x80070005,访问被拒绝
SEC7118: XMLHttpRequest 用于 https://mywebapi.dev/api/authentication/cors/ 需要跨域 资源共享 (CORS)。 cors SEC7119: XMLHttpRequest 为 https://mywebapi.dev/api/authentication/cors/ 需要 CORS 预检。 cors SCRIPT7002:XMLHttpRequest:网络错误 0x80070005,访问权限为 拒绝。
请求立即中止,它永远不会到达消息处理程序!
【问题讨论】:
我也有同样的问题,IE10 只是忽略了Authorization
标头。有什么解决办法吗?
您必须提供更多信息。默认情况下,在 Options 请求期间不发送授权标头。
【参考方案1】:
here 已经回答了这个问题,@EricLaw 在 anser/comment 部分对此进行了解释。我现在找到了,因为我用谷歌搜索了错误代码
SCRIPT7002
我所做的是:
-
我去了托管我的 webapi 的 IIS,并且
单击/标记托管我的 webapi 的 web 应用程序和
转到 SSL 设置-> 选中忽略客户端证书!。
现在预检 CORS 请求使用 IE10 进行。
【讨论】:
以上是关于在 IE10 的 AJAX CORS 请求中添加自定义标头时,CORS 请求中止的主要内容,如果未能解决你的问题,请参考以下文章