从jQuery ajax函数保存响应
Save response from jQuery ajax function
我有一个自定义函数,它调用ajax请求,并且我能够将响应数据保存到变量并返回它。0总是返回,但是alert显示例如3712。
函数如下:
function getNo(index, val) {
var $ret = 0;
$('body').showLoading();
$.ajax({
type: 'POST',
url: BASE_URL + 'tools/no.php?id='+index+'&value='+val,
data: $("#form").serialize(),
cache: false,
success: function(data) {
$('body').hideLoading();
alert('data: ' + data);
$ret = data;
}
});
return $ret;
}
由于ajax
是异步的,当return $ret;
执行时,响应还没有准备好,所以返回它的初始值0
。
您必须在success
回调函数中做您想做的事情,而不是返回。
由于异步调用,这将返回ZERO。相反,我建议您传递一个回调方法来处理响应。
请看下面的例子:
function getNo(index, val, callback) {
var $ret = 0;
$('body').showLoading();
$.ajax({
type: 'POST',
url: BASE_URL + 'tools/no.php?id=' + index + '&value=' + val,
data: $("#form").serialize(),
cache: false,
success: function (data) {
$('body').hideLoading();
callback(data);
}
});
return $ret;
}
//USAGE
getNo(3, "value", function (data) {
//do something with data responded from the server
alert(data);
});
因为Ajax中的"A"代表异步,所以在Ajax调用找到返回成功函数的方法之前执行return $ret;
。
与其尝试返回值,不如尝试调用ajax成功块中的函数。
success: function(data) {
$('body').hideLoading();
alert('data: ' + data);
$ret = data;
doSomething(data);
}
相关文章:
- 如何将getJson的响应保存在全局变量中
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 如何在ExpressJS和LomotiveJS上保存对变量的GET响应
- 在保存到本地存储之前,如何修改我得到的 json 响应以使其看起来像这样
- 设置超时可以保存我的循环函数不被视为无响应
- Socket.io 和 Nodejs:向多个客户端发送响应并且更改未保存(?
- 主干保存在响应为 200 时触发错误
- 节点.js + 请求 - 保存远程文件并将其提供给响应
- 使用 Jquery 将 ajax 响应保存到数组
- 如何保存 AJAX 响应以供以后使用
- 如何在rails数据库中保存JSON响应的值
- 保存JSON响应
- 云代码多次保存然后响应成功
- 将响应值保存到进行Save()调用的骨干模型
- jQuery响应保存为PHP变量
- 如何保存从谷歌地图API响应返回的结果
- 从jQuery ajax函数保存响应
- 用嵌套/链式保存解析无响应
- Jsp测验保存响应临时的
- nodejs如何在http服务器中保存响应