【发布时间】:2019-01-22 05:52:48
【问题描述】:
我目前在网页上向 API 端点提交 AJAX 请求,该端点在 Chrome 和 Firefox 中有效,但在 IE 中无效。
我在 IE 的开发工具中收到的错误消息是:
SEC7123: Request header x-custom-header was not present in the Access-Control-Allow-Headers list.
SCRIPT7002: XMLHttpRequest: Network Error 0x80070005, Access is denied.
查看飞行前的 OPTIONS 请求,以下是一些标头:
Origin: http://www.example.org
Access-Control-Request-Headers: content-type, accept, x-custom-header
Access-Control-Request-Method: GET
飞行前的反应表明:
Access-Control-Allow-Headers: content-type, x-custom-header
Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS
Access-Control-Allow-Origin: *
发生这种情况后,不会执行 AJAX 请求。
看起来 IE 看不到在飞行前请求的响应中返回了标头。
任何帮助将不胜感激,如果您需要更多信息,请询问。
谢谢, 詹姆斯
【问题讨论】:
-
您需要针对您未创建但您知道支持 CORS 的服务测试 IE。无法判断这里出了什么问题。
-
@mpm 我认为问题与添加到请求中的额外标头有关。就 CORS 支持而言,此 Web 服务支持它。唯一的问题是现在指定了另一个标头。如上面的飞行前请求中所示,“x-custom-header”被指定为允许的标头。但是,在进行 AJAX 调用时,似乎无法找到它。如果您知道我可以用来测试的网络服务,请告诉我。
标签: javascript internet-explorer cors cross-domain access-control