jQuery ajax пользовательское сообщение о статусе HTTP в диапазоне 2xx - PullRequest
2 голосов
/ 27 июля 2011

Я пытаюсь создать механизм для ответа с помощью пользовательских сообщений о статусе http и перехватить его на стороне клиента с помощью jQuery Ajax.

Я нашел способ сделать это только для сообщений об ошибках (HTTP 4xx, 5xx), но не для успешных http сообщений (HTTP 2xx).

В качестве примера мне удалось извлечь и предупредить 'FROG CATCH' из состояния HTTP 400 FROG CATCH, но не может предупредить 'FROG ESCAPE' из HTTP 200 FROG ESCAPE

кто-нибудь знает, как расширить JQuery AJAX для поддержки такого рода схемы?

Кто-нибудь?

1 Ответ

0 голосов
/ 15 апреля 2012

Ответы AJAX основаны на успехе и ошибке. Если ваш контент возвращается со статусом 200 (ОК), 304 (не изменен) и т. Д. ... тогда вызов AJAX будет использовать ваш раздел ответа об успешном выполнении, а не раздел об ошибках, где обычно отображается статус (статус в разделе ошибок в основном используется для указания причины ошибки). В зависимости от того, что вы возвращаете и в каком формате вы его возвращаете, вы должны искать ответ в разделе успеха. Предполагая, что вашим языком сервера является PHP, вы можете включить этот статус успеха в возвращенные данные (преобразованные в объект JSON для анализа), например:

$.ajax({
    url : 'your_url.php',
    type : 'POST',
    dataType : 'JSON',
    data : yourData,
    success : function(data) {
        if(data) {
            if(data.status) {
                alert('Status: ' + data.status);
            }
        }
    },
    error : function(xhr, response, status) {
        alert('Response: ' + response.responsetext);
    }
});

Используя свой объект JSON в качестве носителя статуса, вы можете настроить свой статусный ответ. Что касается фактического ответа на заголовок сервера, то он будет указан на вкладке сети в Инспекторе Chrome, на вкладке «Сеть» в Firebug или в разделе инструментов разработки Safari (я забыл название от руки).

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