confuso: il mio XMLHttpRequest ha readyState di 0 e lo stato di 200
-
03-07-2019 - |
Domanda
Ho impostato un breakpoint in firebug e sto esaminando il mio oggetto xhr. Il suo readyState è 0, il suo stato è 200. La mia comprensione è che se lo stato è 200, la richiesta dovrebbe almeno essere iniziata e il readystate dovrebbe essere almeno 1. Qualcuno può spiegare cosa sta succedendo?
Sto usando $ .ajax di jquery per creare l'oggetto xhr, ma non credo che ciò influirebbe sullo stato e sullo stato del xhr.
Soluzione
La richiesta è completa quando readyState è 4, non quando lo stato è 200.
Altri suggerimenti
Il w3c definisce che readyState è un'indicazione progressiva dello stato di avanzamento della richiesta xmlhttp. Passa da 0 a 4 (non inizializzato, aperto, inviato, ricevuto, caricato) e solo a carico è il contenuto pronto per la lettura. Questo è il punto della proprietà e il motivo per cui si monitora l'evento
onreadystatechange
e non lo stato che è un'intestazione di risposta.
Secondo la stessa specifica, status
dovrebbe sollevare un'eccezione quando non disponibile (al momento della ricezione o del caricamento), ma immagino che questo sia confuso dall'implementazione per facilità d'uso.