confuso - meu XMLHttpRequest tem readyState de 0 e status de 200
-
03-07-2019 - |
Pergunta
Eu definir um ponto de interrupção no Firebug e estou examinando meu objeto xhr. Sua readyState é 0, o seu estado é 200. O meu entendimento é que, se o estado é de 200, o pedido deve ter pelo menos começado, eo readystate deve ser pelo menos 1. Alguém pode explicar o que está acontecendo?
Eu estou usando $ .ajax para criar o objeto xhr do jQuery, mas eu não acho que afetaria readystate e status do xhr.
Solução
O pedido está completo quando readyState é 4, não quando o estado é de 200.
Outras dicas
O W3C define que readyState
é uma indicação de progressivo o progresso da xmlhttprequest. Transições, a fim de 0-> 4 (não inicializada, Open, Sent, Recieving, carregado) e só no carregado é o conteúdo pronto para ler. Este é o ponto da propriedade e a razão de você monitorar o evento onreadystatechange
e não de status que é um cabeçalho de resposta.
Pela mesma status
especificação deve gerar uma exceção quando não estiver disponível (pelo recebendo ou carregada), mas eu imagino que este é desrespeitada pela implementação para facilidade de uso.