Получить данные, возвращенные при успехе $.ajax jquery
У меня есть вопрос здесь. Допустим, у меня есть Ajax с jQuery, вот так:
var jqXHR = $.ajax({
type: 'POST',
success: function(data) {
if(data != true)
{
return false;
}
}
});
Я знаю, что $.ajax возвращает объект jqXHR. Мой вопрос заключается в следующем:
Можно ли получить возвращенное значение функции успеха моего вызова $.ajax, используя этот объект jqXHR? Если так, то как мне это сделать? Если это невозможно при использовании объекта jqXHR, есть ли способ получить доступ к возвращенному значению моей функции успеха БЕЗ НАСТРОЙКИ async: false в $.ajax?
Любая помощь, пожалуйста?
2 ответа
Это невозможно без настройки async
в false
, Я бы посоветовал не устанавливать его в false, потому что он полностью останавливает страницу, пока не придет ответ от сервера. Иногда он даже зависает в браузере, если соединение медленное или серверу требуется время, чтобы ответить из-за операции heave.
Вы можете выполнить свой код в обработчике успеха ajax
который вы планируете сделать это снаружи.
Возможно - в некотором смысле - возвращаемый jqXHR также является отложенным объектом, так что вы можете сделать
jqXHR.then(function(data) { ... });
Единственный другой способ получить доступ к данным, о которых я знаю, кроме обратных вызовов ajax, классная вещь - вы можете использовать их несколько раз после отправки запроса ajax, и он всегда будет возвращать данные, которые вы получили от сервер.