запутался — мой XMLHttpRequest имеет readyState 0 и статус 200
-
03-07-2019 - |
Вопрос
Я установил точку останова в firebug и изучаю свой объект xhr.Его состояние готовности равно 0, его статус равен 200.Насколько я понимаю, если статус равен 200, запрос должен был, по крайней мере, начаться, а readystate должно быть не менее 1.Кто-нибудь может объяснить, что происходит?
Я использую jquery $.ajax для создания объекта xhr, но я бы не подумал, что это повлияет на readystate и статус xhr.
Решение
Запрос завершается, когда readyState равно 4, а не когда статус равен 200.
Другие советы
w3c определяет это readyState
является прогрессивным показателем прогресса выполнения xmlhttprequest.Он переходит в порядке от 0 до> 4 (неинициализированный, Открытый, Отправленный, Получаемый, Загруженный), и только при загрузке содержимое готово к чтению.В этом суть свойства и причина, по которой вы отслеживаете onreadystatechange
событие, а не статус, который является заголовком ответа.
По той же спецификации status
предполагается, что он вызывает исключение, когда недоступен (при получении или загрузке), но я полагаю, что это игнорируется реализацией для простоты использования.