我有一些jQuery ajax请求,我与.when调用并行运行。我想忽略那些在超时后没有返回的那些。
这是一个简单的形式:
var ajax1 = $.ajax({url: url1,
timeout: 1000,
success: function() {
console.log("1 done");
}
});
var ajax2 = $.ajax({url: url2,
timeout: 1000,
success: function() {
console.log("2 done");
}
});
$.when(ajax1, ajax2).done(function() {
console.log("all done");
});
在上面的示例中,如果url1在没有1秒的情况下没有响应,我仍然希望达到“全部完成”。我知道如何在每个ajax调用中捕获超时错误,但我不知道如何将错误标记为忽略。
答案 0 :(得分:4)
如果你想要ajax调用完成的所有方式(成功,错误,超时等等)而不仅仅是成功的方式,你不能只使用.always()
而不是.done()
饰面:
$.when(ajax1, ajax2).always(function() {
console.log("all done");
});
传递给.always()
回调的参数可用于确定ajax调用的成功或错误类型。