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