我正在进行跨域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 = 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中有时会显示类似(异常终止)的错误。
为了克服此错误,我在Google中进行了搜索,但未找到任何好的解决方案。
您可以在显示(终止)的地方看到错误消息。
http://postimg.org/image/k01u6t9v5/
当我单独呼叫特定的URL时,它没有显示任何(终止)消息(“显示成功”警报)。但是,当我进行多次调用(如图中所示)时,它会显示这种类型的错误。
如何克服这个问题?
请帮忙
提前致谢
我不确定这是同一个问题,但就我而言,所有这些都需要设置:onerror; 进行中 超时 和加载。这里是一些讨论该问题的参考:
还有很多其他的。他们的建议解决方案分散,有时矛盾。例如,建议将xdr.send调用包装在setTimeout中。
我看到的行为通过为每个事件处理函数添加非空白主体而消失了。我不确定是否全部必要。该setTimeout的包装肯定 不是 必要的。
一条可能不相关的信息:在我的情况下,我决定将每个处理程序绑定到“
this”对象。我还添加了函数实现,以防止编译器将它们全部分配给同一空函数。我的代码使用的是GET,而不是POST。YMMV。
您的代码使一个处理程序保持不变:
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");
}
});
}
问题内容: 看来这是一个众所周知的问题,但是我在Google上找到的所有解决方案都不适用于我新下载的IE9。 启用and 标签上的属性的最喜欢的方式是哪种? 可选:我为此花了很多时间,而且还没有去寻找房产。您对此还有意见吗?显然,我可以检查PHP中的值,但是对于帮助用户使用此属性非常方便。 问题答案: HTML5占位符jQuery插件 -通过的Mathias Bynens上协作者HTML5样板和j
问题内容: 我已经建立了一个AJAX聊天室;并且它可以在chrome和FF中使用,但当然不能在IE中使用。这是我的代码: 结果永远不会显示。我有一个名为AjaxDiv的div,如果有帮助的话。我究竟做错了什么?这是一个错误吗? 问题答案: 每次发出请求时,都可能要取出缓存的副本。 在服务器上设置正确的缓存头 或将查询字符串附加到get请求中,如下所示
问题内容: 看来这是一个众所周知的问题,但是我在Google上找到的所有解决方案都不适用于我新下载的IE9。 启用and 标签上的属性的最喜欢的方式是哪种? 可选:我为此花了很多时间,而且还没有去寻找房产。您对此还有意见吗?显然,我可以检查PHP中的值,但是对于帮助用户使用此属性非常方便。 问题答案: HTML5占位符jQuery插件 -通过的Mathias Bynens和jsPerf https
问题内容: (我已经看过许多关于SO的其他类似文章,但不幸的是无法解决此问题,所以这里…) 我正在使用Selenium WebDriver(C#实现,版本2.15)来驱动一个相当简单的网页。该页面包含一个表单,其中包含两个用于输入用户名和密码的<输入>,以及一个用于提交该表单的<输入>。我可以成功输入用户名和密码的值,但是提交按钮上的Click()调用似乎无效。 对于其他建议,我尝试了以下技巧,但
问题内容: 有没有一种简单的方法可以让css3 在IE9中工作?至少一个文本阴影会很棒。我想理想情况下也支持IE8。我希望有一个简单的jquery插件或.htc文件,它仅查看元素的text- shadow css属性并为IE9实现它。 问题答案: 是的,但不是您想像的那样。根据caniuse(一种非常好的资源)的说法,没有支持,也没有polyfill可用于为IE9 添加支持。但是, IE具有自己的
问题内容: 我正在执行从Date到字符串的转换,然后再转换为在sessionStorage中使用。所以我首先这样做: 然后我这样做: 问题在于, IE9 +* 中的函数将返回,但在IE8中,它将返回缺少结尾的小数部分。事实是,在IE8中,随后的重新转换均无法转换为日期(结果为) * 知道为什么会发生这种情况以及如何使此代码适用于IE8 +吗? 更新: 我尝试在调试中替换字符串,结果发现这两个字符串