0

当使用 $.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]);             
        }
    });
}

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

4

2 回答 2

2

两者params和都i存在于全局命名空间中,因此假设 AJAX 调用比 for 循环花费更长的时间(男孩,它更好) ,每个success都会为您获取 的最后一个值。i

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

于 2013-01-22T23:37:54.107 回答
1

您必须使用该选项将其传递给您的 url,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]);
}
于 2013-01-22T23:18:08.493 回答