Jquery - Чтение ответа HTTP из обещания/отложенного ответа Ajax

Я новичок в обещаниях jquery и отложенных объектах. Я пытаюсь получить или проанализировать ответ на ajax-запрос POST/PUT/DELETE. Я хочу прочитать код состояния HTTP (200, 204,...).

При использовании $.when и отложенных объектов таким образом:

$.when($.ajax(request)).then(callback_function(response))

Можно ли анализировать код состояния HTTP? Сам ответ vble пустой, так как в ответе нет данных. Если это невозможно, будет ли решение использовать функции done() или fail()? Что, если важно распознать код состояния HTTP, чтобы действовать по нему?


person kitimenpolku    schedule 05.12.2013    source источник


Ответы (1)


Ознакомьтесь с документацией по jQuery http://api.jquery.com/jQuery.ajax/ и найдите «Объект jqXHR», вот вам и решение.

Объекты jqXHR, возвращаемые $.ajax() начиная с jQuery 1.5, реализуют интерфейс Promise, предоставляя им все свойства, методы и поведение Promise (дополнительную информацию см. в разделе Отложенный объект). Эти методы принимают один или несколько аргументов функции, которые вызываются при завершении запроса $.ajax(). Это позволяет назначать несколько обратных вызовов для одного запроса и даже назначать обратные вызовы после того, как запрос может быть завершен. (Если запрос уже выполнен, обратный вызов запускается немедленно.) Доступные методы Promise объекта jqXHR включают:

person Community    schedule 05.12.2013
comment
Я передавал только один аргумент .then, поэтому ответ был пустым. Функция .then также поддерживает эти аргументы jqXHR.then(function( data, textStatus, jqXHR ) {}, function( jqXHR, textStatus, errorThrown ) {}); что упрощает чтение кода состояния HTTP. Спасибо @DBPBTPV - person kitimenpolku; 05.12.2013