使用$ .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]);
}
});
}
但它不起作用。你有什么想法吗?
答案 0 :(得分:2)
全局命名空间中都存在params
和i
,因此每个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]);
}