XMLHttpRequest.readyState

la proprietà XMLHttpRequest.readyState restituisce lo stato nel quale si trova il client di una richiesta XMLHttpRequest. Un client XHR si può trovare in uno degli stati seguenti:

Value State Description
0 UNSENT Il Client è stato creato, ma il metodo open() della XHR non è stato ancora invocato.
1 OPENED Il metodo open() è stato invocato.
2 HEADERS_RECEIVED Il metodo send() della XHR è stato invocato, e sono già disponibili lo status della risposta HTTP ed il suo header. 
3 LOADING Sta avvenendo il download dei dati; responseText contiene dati parziali.
4 DONE L'operazione è stata completata.
UNSENT
Il Client è stato creato, ma il metodo open() della XHR non è stato ancora invocato.
OPENED
Il metodo open() della XHR è stato invocato. In questo stato è possibile settare l' header della richiesta HTTP utilizzando il metodo setRequestHeader(); può essere invocato il metodo send(), che inizia il fetch della richiesta.
HEADERS_RECEIVED
Il metodo send() è stato invocato e sono stati ricevuto gli headers della risposta; è possibile conoscere il codice della risposta HTTP ed i suoi metadati.
LOADING
Sta avvenendo il download del body della risposta HTTP; se il responseType è "text" o vuoto, responseText conterrà un testo parziale.
DONE
L'operazione di fetch è terminata; Questo può significare sia che il trasferimento dei dati è stato un successo e questi sono completamente disponibili o che è fallito.

The state names are different in Internet Explorer. Instead of UNSENT, OPENED, HEADERS_RECEIVED, LOADING and DONE, the names READYSTATE_UNINITIALIZED (0), READYSTATE_LOADING (1), READYSTATE_LOADED (2), READYSTATE_INTERACTIVE (3) and READYSTATE_COMPLETE (4) are used.

Example

var xhr = new XMLHttpRequest();
console.log('UNSENT', xhr.readyState); // readyState sarà pari a 0

xhr.open('GET', '/api', true);
console.log('OPENED', xhr.readyState); // readyState sarà pari a 1

xhr.onprogress = function () {
    console.log('LOADING', xhr.readyState); // readyState sarà pari a 3
};

xhr.onload = function () {
    console.log('DONE', xhr.readyState); // readyState sarà pari a 4
};

xhr.send(null);

Specifications

Specification Status Comment
XMLHttpRequest Living Standard WHATWG living standard

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)
Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 1 (Yes) 1.0 (1.7 or earlier)[1] 7 (Yes) 1.2
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? 1.0 (Yes) (Yes) ? ? ?