我希望快速连续发出几个jQuery AJAX请求,因此响应不会在下一个请求之前发出。但是,我确实希望使用success函数处理这些响应中的每一个。
使用以下代码,前两个响应将被忽略,只有最后一个响应将响应。
$('#button').click(function() {
var num = 3;
for(var i=0;i<num;i++)
ajaxCall(i);
}
function ajaxCall(data){
$.ajax({
url: '/echo/html/',
success: function(msg) {
alert(msg);
}
});
}
但是我试图让它显示所有三个警报。似乎每次调用ajaxCall
函数时,它都使用与前一次相同的“对象”,而不是实例化一个新对象,这就是我想要做的。
答案 0 :(得分:-1)
试试这个(使用Deferred Object)
$('#button').click(function() {
var num = 3;
for(var i=0;i<num;i++) {
ajaxCall(i).done(function(data)
{
alert(data)
}
);
}
});
function ajaxCall(data){
return $.ajax({
url: '/echo/html/'
});
}