2016-12-14 66 views
1

後這裏是做一個Ajax調用調用函數的ajax完成

function gettrans(callback) { 
    var xml = $.ajax({ 
    method: 'GET', 
    url: 'url/?callback=jsonpCallback', 
    dataType: 'jsonp', 
    jsonp: !1, 
    jsonpCallback: "jsonpCallback", 
    data: { drop_lang: dropjslang,}, 
    success: function (data) { 
     callback(); 
    }, 
    error: function (data) { 
    } 
    }); 
    return xml.responseJSON 
} 

我想回到xml.responseJSON功能,但我得到undefined

什麼可能是一個解決方案?

+0

不能同步返回一個值,如果本身的價值是取/異步生成。 '$ .ajax'調用是異步的,所以'gettrans'不能同步返回一個值。你可以返回一個承諾。或者,您可以使ajax調用upfornt併成功回調設置您可以使用gettrans返回的值/數據,歡迎使用異步編程! – bhantol

回答

1

你應該傳遞一個回調函數success

success: function(response) { 
    console.log(response); // response is the data returned by your ajax query 
} 
2

結果傳遞給你的回調:

function gettrans(callback) { 
    $.ajax({ 
    ... 
    success: function (data) { 
     callback(data); 
    }, 
    ... 
    }); 
}