2016-12-14 68 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); 
    }, 
    ... 
    }); 
}