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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top