我有一个简单的ajax调用一个不存在的url并带有错误回调:
$.ajax("non-nonexistent-url", {
error: function () {
alert("FOO");
}
});
alert("BAR");
当我在Chrome中运行它时,我得到“BAR”然后“FOO”警报,这是我期望的行为 - ajax调用是异步的。
然而,在IE中,我得到“FOO”然后“BAR”,看起来像同步通话,但为什么呢?默认情况下它应该是异步的,对吧?
我希望保证$.ajax
在执行任何回调之前返回...
答案 0 :(得分:1)
关于原因的假设:
如果URL中的主机不存在,则实际上不会发出请求。虽然在IE中只有请求是异步的,但在其他浏览器中,主机查找也是异步的。