--- title: XMLHttpRequest.readyState slug: Web/API/XMLHttpRequest/readyState translation_of: Web/API/XMLHttpRequest/readyState ---

{{APIRef('XMLHttpRequest')}}

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
{{SpecName('XMLHttpRequest', '#states')}} {{Spec2('XMLHttpRequest')}} WHATWG living standard

Browser compatibility

{{CompatibilityTable}}
Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support {{CompatChrome(1)}} {{CompatVersionUnknown}} {{CompatGeckoDesktop("1.0")}}[1] {{CompatIe(7)}} {{CompatVersionUnknown}} {{CompatSafari("1.2")}}
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatUnknown}} 1.0 {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}