【发布时间】:2014-06-07 10:13:15
【问题描述】:
我有一个 IE 错误,我似乎无法弄清楚。我只支持 IE 10 和 11,所以我认为我可以摆脱以下代码。
我有一个 AJAX 请求:
$.ajax({
type: {method},
url: {url},
cache: false,
crossDomain: true,
data: {data to send},
success: function (data, textStatus, xhr) {
///success code
},
error: function (xhr, textStatus, errorThrown) {
//error code
}
});
此代码在 Firefox 和 Chrome 中运行良好。它在 IE 10,11 中不起作用。我的印象是 CORS 在 IE 10,11 中是固定的,不是吗?
为什么在 IE 10,11 中会出现跟随错误?
{"readyState":0,"status":0,"statusText":"Error: Access is denied.\r\n"}
【问题讨论】:
-
不相关,但如果您发出跨域请求,则不需要
crossDomain: true。 (很奇怪吧?)如果您想知道原因,请参阅 crossDomain 选项的文档。 -
您确定您实际上是在 IE10 或 11 标准模式下运行吗?通常,在开发环境中进行测试时,IE 会默认为兼容模式,这会使您回到 IE8 或 IE7。
-
我遇到了同样的错误,并且 CORS 设置已在服务器上完成,但请求从未出现在 IE 的“网络”选项卡中。始终 xhr.status=0。有什么想法吗?
-
谢谢大家。虽然没有运气。所以对我来说,服务器设置正确,一切都在 chrome 和 firefox 中运行。此外,如果我将用户代理字符串更改为“Google Chrome”,它可以在 IE 中使用。如果我将它设置为 IE 10 或 11,我会收到我之前提到的错误。另外我确定我没有使用兼容模式。我刚才仔细检查了。
-
您需要显示客户端和服务器之间的 HTTP 流量记录,以便在此方面获得任何进一步的帮助。问题出在您的客户端代码或服务器代码中。
标签: javascript ajax cors