javascript-$.post()调用的返回值
作者:互联网
我有一个jQuery $.post函数,就像这样:
$.post('/test',json_data, function(data) {
result=data
});
此函数实际上是在验证中使用的…因此它的返回值(数据)包含true或false.但是此值未存储在变量“结果”中.我知道这是因为post进行了异步调用,因此它不等待响应.我想问的是,是否有一些解决方法?还是可以通过某种方式使此调用同步?
解决方法:
这被认为是不好的做法,但是$.ajax()
中有一个异步参数,您可以将其设置为false并同步等待结果:
var result;
$.ajax({
type: 'POST',
url: '/test',
data: json_data,
async: false,
success: function(data) {
result=data;
},
dataType: 'application/json'
});
//result available here
虽然在这种情况下不太方便,但更惯用的是利用回调:
function validate(okCallback, errorCallback) {
$.post('/test',json_data, function(data) {
if(data) {
okCallback();
} else {
errorCallback();
}
});
}
validate(
function() {
//proceed
},
function() {
//display validation error
}
}
标签:javascript,jquery,ajax,return-value,post 来源: https://codeday.me/bug/20191013/1910013.html