2013-01-22 39 views
0

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

例子:

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

两个paramsi存在于全局命名空间,所以每个success将让你的i的最后一个值,假设AJAX调用需要比较长的for循环(男孩,它更好)。

将你的AJAX调用包装在一个函数中,并将参数传递给函数。然后您可以直接从success内拨打电话。

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]); 
} 
+0

json.param ist undefined – mal200

+0

你的URL需要返回json!它需要返回数据值 –