我想從完成的jQuery Ajax調用中返回一個值。但是,我並沒有收到JSON數據,而是收到「未定義」的信息。我如何修改我的代碼來獲取JSON數據而不是未定義?jQuery Ajax返回值
function callback(data) {
return data;
}
var xv = jQuery.ajax({
url: 'http://www.domain.com/json.php',
dataType: 'json',
success: function(data) {
alert('Success.'); // This is alerted.
},
error: function(data) {
alert('File could not be processed.'); // This is not alerted.
},
complete: function(data) {
callback(data);
}
});
console.log(callback()); // Getting "undefined" here instead of data.
我不明白,你打電話'callback'不帶參數的'data'當然是不確定的。 –
此外,'complete'處理程序的第一個參數是'jqXHR',而不是數據。數據僅作爲第一個參數傳遞給'success'。 – GSerg
默認情況下,AJAX是異步的,只有當你得到它時,你纔有你的數據,這就是你的「成功」回調。進行「同步」調用,或在成功功能中使用您的數據。 – skobaljic