所以我一直在这里用头撞键盘一段时间,终于设法将这种奇怪的行为归结为核心。
似乎在 Chrome 中,当您使用 JQuery.ajax() 发出 JSONP 请求并且服务器返回 404 时,不会调用任何回调。提供给 fail()、always() 或 done() 的回调都不会被调用。
在 IE10 中,回调按预期调用。
简单示例(您也可以在此小提琴中查看:
$.ajax("https://www.google.com/notexists",
{
dataType: "jsonp",
}
).always(function ()
{
alert("Call ended."); // This never gets called in Chrome!
});
我正在使用 jQuery 1.9.1。
有其他人看到这种行为吗?除了这是jQuery中的错误之外,还有其他解释吗?