Ajax XDomainRequest中止IE 9上的POST
我正在做一个跨域Ajax调用 我的代码:Ajax XDomainRequest中止IE 9上的POST,ajax,internet-explorer-9,cross-domain,xdomainrequest,Ajax,Internet Explorer 9,Cross Domain,Xdomainrequest,我正在做一个跨域Ajax调用 我的代码: if (window.XDomainRequest) // Check whether the browser supports XDR. { xdr = new XDomainRequest(); // Create a new XDR object. if (xdr) { xdr.timeout = 3000;//Set the timeout time to 3 second. xdr.onload
if (window.XDomainRequest) // Check whether the browser supports XDR.
{
xdr = new XDomainRequest(); // Create a new XDR object.
if (xdr) {
xdr.timeout = 3000;//Set the timeout time to 3 second.
xdr.onload = function () {
alert("Success");
};
xdr.onerror = function () {
alert("Error");
};
xdr.ontimeout = function () {
alert("Error");
};
xdr.open("post", urlSearch);
xdr.send();
}
}
else {
$.ajax({
url: urlSearch,
type: 'POST',
dataType: 'json',
timeout: 3000,
success: function (data) {
alert("Success");
},
error: function () {
alert("Error");
}
});
}
上面的代码在所有浏览器中都可以正常工作,但在IE中有时会显示类似(中止)的错误
为了克服这个错误,我在谷歌上搜索,并没有找到任何好的解决方案
您可以看到显示(中止)的错误消息。
当我单独调用特定的URL时,它不会显示任何(中止的)消息(显示成功警报)。但是当我进行多次调用(如图中所示)时,它会显示这种类型的错误
如何克服这个问题
请帮忙
提前感谢我不确定这是否是同一个问题,但就我而言,所有这些都需要设置:onerror;进步;及时;并加载。以下是一些讨论该问题的参考资料:
if (window.XDomainRequest) // Check whether the browser supports XDR.
{
xdr = new XDomainRequest(); // Create a new XDR object.
if (xdr) {
xdr.timeout = 3000;//Set the timeout time to 3 second.
xdr.onload = function () {
alert("Success");
};
xdr.onerror = function () {
alert("Error");
};
xdr.ontimeout = function () {
alert("Error");
};
// this also needs to be set
xdr.onprogress = function() {
window.console.log('progress');
};
xdr.open("post", urlSearch);
xdr.send();
}
}
else {
$.ajax({
url: urlSearch,
type: 'POST',
dataType: 'json',
timeout: 3000,
success: function (data) {
alert("Success");
},
error: function () {
alert("Error");
}
});
}
你找到解决办法了吗?我也有同样的问题。@JochemGruter您是否在任何循环中使用调用ajax请求意味着在任何循环中您是否调用ajax调用?????