jQuery $ .get/$. Ajax передає код стану HTTP 200 замість очікуваного коду стану 201 або 202

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

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

Іншими словами, наступний код надруковує Code: 200 незалежно від того, що відправляє сервер.

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

Чому це відбувається і, що більш важливо, як можна отримати фактичний код стану в зворотному виклику jQuery AJAX для $. Get або $. Ajax ?

Дякую за читання

10
Можливо, це допоможе: bugs.jquery.com/ticket/8211
додано Автор Scoobler, джерело
Крис Іванов: Ні JSONP, ні міждоменний. Це запит звичайного роду.
додано Автор Brian M. Hunt, джерело
Помилка 8211 виглядає лише як пов'язана між собою, тобто jQuery неправильно обробляє обробники statusCode та success . Це, здається, дивне урізання коду стану - я думаю, там буде деяка ознака, наприклад, github.com/jquery/jquery/blob/master/src/ajax. JS , але я не бачу нічого, що, очевидно, змінить jqXHR.status на 200 від 201/202.
додано Автор Brian M. Hunt, джерело
Див. цей звіт про помилку і дізнайтеся, чи це пов'язано; Цікаво, що трапиться, якщо ви використовуєте $. ajax і повідомляєте про статус як обробника коду, так і успіху.
додано Автор Dave Newton, джерело
будь-який шанс, що ви використовуєте JSONP або міждоменний запит GET ?
додано Автор Kris Ivanov, джерело

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/

Сподіваюсь, це допоможе вам прицілити!

2
додано
Хороший - це все або нічого. Заборона перенаправлення через jQuery ajax неприємна
додано Автор Mikhail, джерело
ІТ КПІ - JavaScript
ІТ КПІ - JavaScript
504 учасників

співтовариство javascript розробників в Telegram