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/
Надеюсь, что поможет вам прибить его!