我希望快速连续地触发多个 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 函数时,它都会使用与前一次相同的“对象”,而不是实例化一个新对象,这正是我想要做的。
最佳答案
试试这个(使用 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/'
});
}
关于javascript - 使用相同 AJAX 函数的多个 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13613287/