Я пытаюсь вернуть значение из завершенного вызова jQuery Ajax. Однако, вместо данных JSON, я получаю обратно «неопределенный». Как изменить код, чтобы получить данные JSON вместо undefined?Возвращаемое значение из 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 по умолчанию асинхронный, у вас есть данные только тогда, когда вы его получите, это в вашем обратном вызове 'success'. Сделайте вызов 'sync' или используйте свои данные в своей функции успеха. – skobaljic