传递变量$阿贾克斯()()完成(Passing variables to $.ajax().done

2019-06-23 11:14发布

我迷路了。 我怎么可能会传递一个循环变量的AJAX .done()调用?

for (var i in obj) {
   $.ajax(/script/).done(function(data){ console.log(data); });
}

很显然,如果我是这样做console.log(i+' '+data) 将返回该对象中的最后一个关键的obj上的每一个迭代。 文档失败我。

Answer 1:

您可以使用闭合(通过自执行的函数)来捕获的价值i为这样的循环在每次调用:

for (var i in obj) {
    (function(index) {
        // you can use the variable "index" here instead of i
        $.ajax(/script/).done(function(data){ console.log(data); });
    })(i);
}


Answer 2:

您可以在“本”的时候,承诺的回调是由在您发送给$阿贾克斯()对象只需要创建一个自定义字段,这将是一个字段。

例如:

$.ajax( { url: "https://localhost/whatever.php", method: "POST", data: JSON.stringify( object ), custom: i // creating a custom field named "custom" } ).done( function(data, textStatus, jqXHR) { var index = this.custom; } );



文章来源: Passing variables to $.ajax().done()