ajax請求 return異常

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;
}

這樣就可以調用成功了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章