JQuery - 向回调函数发送额外参数

时间:2013-01-22 23:12:48

标签: jquery ajax json parameters

使用$ .ajax()函数从服务器端脚本发送信息请求时,是否可以将参数传递给回调函数?

示例:

var params = ['param1', 'param2', 'param3']; 
for (var i = 0; i < params.length; i++) {
    $.ajax({
        url: url,
        dataType: "json",
        success: function(json, textStatus, jqXHR){
            console.log(params[i]);             
        }
    });
}

但它不起作用。你有什么想法吗?

2 个答案:

答案 0 :(得分:2)

全局命名空间中都存在paramsi,因此每个success都会获得i的最后一个值,假设AJAX调用的时间比循环(男孩,它更好)。

在函数中包装AJAX调用并将参数传递给函数。然后,您可以直接从success内部调用它。

答案 1 :(得分:1)

您必须使用data选项将其传递给您的网址,然后在响应中将其返回,从而将其置于异步成功回调中。

顺便说一句,您应该将整个ajax位包装在for循环外的函数中,并在循环内调用它。喜欢这个

var params = ['param1', 'param2', 'param3']; 

function do_stuff(param){
    $.ajax({
        url: url,
        dataType: "json",
        data: {
            'param' : param
        },
        success: function(json, textStatus, jqXHR){
            console.log(json.param);    
        }
    });
}

for (var i = 0; i < params.length; i++) {
  do_stuff(params[i]);
}