ajax请求中,如果我们需要return返回值的话,直接return是行不通的:
function f() {
$.ajax({
url:"baidu.com" ,
type:"get",
data:{
'a': '1',
'b': '2',
},
success: function (data) {
return data.code;
}
});
}
原因:在ajax中return并不指的是在外部函数 f() 中return,需要将retrun拿出来:
function f() {
$.ajax({
url:"baidu.com" ,
type:"get",
data:{
'a': '1',
'b': '2',
},
success: function (data) {
code = data.code;
}
});
return code;
}
但是这样还是拿不到返回值,原因是ajax是异步调用,return返回值的时候,ajax请求并没有完成,所以取不到返回值,所以需要修改成如下,添加参数让ajax请求变成阻塞:
function f() {
$.ajax({
url:"baidu.com" ,
type:"get",
data:{
'a': '1',
'b': '2',
},
async:false, //阻塞执行请求
success: function (data) {
code = data.code;
}
});
return code;
}
这样就可以调用成功了!