如何在发送请求时将其他参数传递给Ajax响应

时间:2016-01-04 21:40:28

标签: javascript jquery ajax servlets

我有一个jquery函数,它遍历一个数组并为每次迭代调用servlet。如何确保每个servlet的响应都转到相应的div部分。 div id是唯一的,对应于数组中的val。

JQuery的:

function foo() {

  for (var p in obj) {

    var tagId = obj[p]["prop1"];

    $.get('CallServlet', {
      json: JSON.stringify(obj[p])
    }, function(response) {
      $("#" + tagId).append(response);
    });

  }
}

示例:

tagId= obj[0][val1];

我希望我的回复能够:

<div id="tagId"></div>

在上面的函数中,当迭代器在对象中前进时,响应中tagId的值被覆盖。 当我收到obj[0]的回复时,tagId会更新为obj[1][val1]

2 个答案:

答案 0 :(得分:1)

因为您在循环中发送了ajax调用,所以可以在回调中使用循环变量来进行ajax调用。

function(response){
    $("#"+tagId).append(response);
}

这将为循环的每次迭代生成一个不同的回调函数。

答案 1 :(得分:1)

你需要用IIFE函数包装它

function foo() {

  for (var p in obj) {

    var tagId = obj[p]["prop1"];
    (function(id) {
      $.get('CallServlet', {
        json: JSON.stringify(obj[p])
      }, function(response) {
        printFunc(responseText, id);
      });
    })(tagId)

  }
}