получить данные, возвращенные при успехе $ .ajax jquery - PullRequest
0 голосов
/ 28 января 2012

У меня есть вопрос здесь.Допустим, у меня есть Ajax с jQuery, например так:

var jqXHR = $.ajax({
       type: 'POST', 
       success: function(data) {
             if(data != true)
             {
                  return false;
             }
       }
});

Я знаю, что $ .ajax возвращает объект jqXHR.Мой вопрос заключается в следующем:

Можно ли получить возвращенное значение функции успеха моего вызова $ .ajax, используя этот объект jqXHR?Если да, то как мне это сделать?Если это невозможно при использовании объекта jqXHR, есть ли способ получить доступ к возвращенному значению моей функции успеха БЕЗ НАСТРОЙКИ async: false в $ .ajax?

Любая помощь, пожалуйста?

Ответы [ 2 ]

3 голосов
/ 28 января 2012

Невозможно без установки async в false.Я бы посоветовал не устанавливать его в false, потому что он полностью останавливает страницу, пока не придет ответ от сервера.Иногда он даже зависает в браузере, если соединение медленное или серверу требуется время, чтобы ответить из-за операции heave.

Вы можете выполнить свой код в обработчике успеха ajax, который вы планируете сделать снаружи.

0 голосов
/ 28 января 2012

Возможно - в некотором роде - возвращаемый jqXHR также является отложенным объектом, поэтому вы можете сделать

jqXHR.then(function(data) { ... });

единственным другим способом получить доступ к известным мне данным, кроме обратных вызовов ajaxкруто то, что вы можете использовать его несколько раз после отправки запроса ajax, и он всегда будет возвращать данные, полученные с сервера.

...