перепутал - у моего XMLHttpRequest есть readyState 0 и статус 200 - PullRequest
3 голосов
/ 03 марта 2009

Я установил точку останова в firebug и проверяю свой объект xhr. ReadyState равен 0, его статус равен 200. Насколько я понимаю, если статус равен 200, запрос должен быть запущен как минимум, а состояние готовности должно быть как минимум 1. Может кто-нибудь объяснить, что происходит?

Я использую jquery $ .ajax для создания объекта xhr, но я не думаю, что это повлияет на состояние и статус xhr.

Ответы [ 2 ]

4 голосов
/ 04 марта 2009

w3c определяет , что readyState является прогрессивным индикатором хода выполнения xmlhttprequest. Он изменяется в порядке от 0 до> 4 (неинициализировано, открыто, отправлено, получено, загружено) и только при загруженном состоянии содержимое готово для чтения. Это точка свойства и причина, по которой вы отслеживаете событие onreadystatechange, а не статус, который является заголовком ответа.

По той же спецификации status должно вызывать исключение, когда оно недоступно (при получении или при загрузке), но я полагаю, что это игнорируется реализацией для простоты использования.

3 голосов
/ 04 марта 2009

Запрос завершается, когда readyState равен 4, а не когда статус равен 200.

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