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;
}
這樣就可以調用成功了!