Получить данные, возвращенные при успехе $.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, и он всегда будет возвращать данные, которые вы получили от сервер.

Другие вопросы по тегам