Und*_*ble 1 javascript ajax jquery
我将数据从JQuery ajax调用传递回调用位置时出现问题.有问题的代码如下:
jQuery("#button").click(function()
{
for(var i = 0;i < data.length; i++)
{
result = updateUser(data[i]); //result is not populated..
alert(result); //prints 'undefined'
}
});
function updateUser(user_id)
{
jQuery.ajax({
url:"/users/update/"+user_id,
type:"GET",
async: false,
success: (function(data){
//if I alert "data" here it shows up correctly
//but if i try to return it like below
//it does not get passed correctly
return data;
})
});
Run Code Online (Sandbox Code Playgroud)
任何指针都非常感谢
您不能从这样的AJAX成功处理程序返回值.AJAX是异步因此执行将继续到下一行哪里result是undefined.从异步操作中获取数据的唯一方法是使用回调.回调是在异步操作完成它正在执行的操作时调用的函数:
jQuery("#button").click(function () {
for (var i = 0; i < data.length; i++) {
updateUser(data[i], function(result) {
alert(result);
});
}
});
function updateUser(user_id, callback) {
jQuery.ajax({
url: "/users/update/" + user_id,
type: "GET",
success: callback
});
}
Run Code Online (Sandbox Code Playgroud)
在这里,您将在AJAX调用的成功处理程序中调用回调,因此您现在可以访问AJAX调用返回的数据.
| 归档时间: |
|
| 查看次数: |
4246 次 |
| 最近记录: |