JQuery $.get/$. ajax передает код статуса HTTP 200 вместо ожидаемого кода состояния 201 или 202

У меня есть сервер, который возвращает код статуса HTTP 200, 201 и 202 из того же URL-адреса. В Chrome я подтвердил панель "Отладка сети", что код состояния - это то, что я ожидаю от него (т.е. 200, 201 или 202). Я полагаюсь на этот код состояния, чтобы определить следующий шаг.

Я ожидаю, что обратные вызовы для jQuery (версия 1.5.2) AJAX запросят установить jqxhr.status в код состояния, который отправляет сервер. Однако код статуса всегда равен 200, даже если код, отправленный сервером, составляет 201 или 202.

Другими словами, следующий код печатает Code: 200 независимо от того, что отправляет сервер.

$.get(url, {}, function (data, textStatus, xhr ) {
    alert("Code: " + xhr.status);
});

Почему это происходит, и что более важно, как можно получить фактический код состояния в обратном вызове jQuery AJAX для $.get или $.ajax?

Спасибо, что прочитали.

Ответ 1

Из того, что я испытал, jQuery просто не настроен очень хорошо для обработки фактических кодов состояния в ответе. Вы можете попробовать просто выполнить ручной вызов AJAX, используя старые добрые костяные кости JS и самостоятельно обрабатывать статус.

Вот несколько руководств о том, как это сделать.

http://www.degraeve.com/reference/simple-ajax-example.php

http://www.w3schools.com/ajax/default.asp

request.status - это то, где вы должны иметь доступ к коду состояния в объекте запроса. Вот еще одна страница, показывающая немного о том, как получить доступ к еще более подробной информации о статусе запроса.

http://www.ibm.com/developerworks/web/library/wa-ajaxintro3/

Надеюсь, что поможет вам прибить его!