我正在尝试处理使用jQuery / Ajax的中止状态。
我正在进行多次ajax调用。如果任何一个Ajax调用成功(就像快照中的Status
之一是200 OK
那么)我需要显示成功消息。如果所有Ajax调用都具有Aborted
状态,那么我需要显示失败消息。
但它不是这样的;因此有点困惑。请指导。
答案 0 :(得分:0)
我认为,即使没有async:false
,您也可以解决问题。使用promise同步多个请求:
$(function() {
$("#btnSubmit").click(function() {
var dfd = new $.Deferred();
var proms = [];
var errs = 0;
for (var i = 8078; i < 8085; i++) {
var port = i;
proms.push(jQuery.ajax({
url: 'http://localhost:' + port + '/test/',
dataType: 'jsonp'
})
.then(function(resp) {
dfd.resolve(resp);
return resp;
}, function ( err ) {
errs++;
if ( errs === proms.length )
dfd.reject( err );
}));
}
dfd.promise()
.then(function ( resp ) {
// TODO: Add your logic
}, function () {
console.log()
if ( errs === proms.length )
console.log( 'all fails' );
});
})
});