2013-01-22 65 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!它需要返回數據值 –