XMLHttpRequest.readyState

La propriété XMLHttpRequest.readyState renvoie l'état dans lequel se trouve un client XMLHttpRequest.Un client XHR existe dans l'un des états suivants :

Value State Description
0 UNSENT Le client a été créé. open() n'a pas encore été appelé.
1 OPENED open()a été appelé.
2 HEADERS_RECEIVED send() a été appelé, et les en-têtes et le statut sont disponibles.
3 LOADING Téléchargement; responseText contient des données partielles.
4 DONE L'opération est terminée.
UNSENT

Le client XMLHttpRequest a été créé, mais la méthode open() n'a pas encore été appelée.

OPENED

La méthode open() a été invoquée. Pendant cet état, les en-têtes de requête peuvent être définis à l'aide de la méthode setRequestHeader() et la méthode send() peut être appelée, ce qui lancera la récupération.

HEADERS_RECEIVED

send() a été appelé et les en-têtes de réponse ont été reçus

LOADING

Le corps de la réponse est en cours de réception. Si responseType is "text" ou une chaîne vide, responseText aura la réponse textuelle partielle au fur et à mesure de son chargement.

DONE

L'opération de récupération est terminée. Cela peut signifier que le transfert de données a été effectué avec succès ou a échoué.

Note : Les noms des états sont différents dans les versions d'Internet Explorer antérieures à 11. Au lieu de UNSENT, OPENED, HEADERS_RECEIVED, LOADING et DONE, les noms READYSTATE_UNINITIALIZED (0), READYSTATE_LOADING (1), READYSTATE_LOADED (2), READYSTATE_INTERACTIVE (3) et READYSTATE_COMPLETE (4) sont utilisés.

Exemple

js
var xhr = new XMLHttpRequest();
console.log("UNSENT", xhr.readyState); // readyState will be 0

xhr.open("GET", "/api", true);
console.log("OPENED", xhr.readyState); // readyState will be 1

xhr.onprogress = function () {
  console.log("LOADING", xhr.readyState); // readyState will be 3
};

xhr.onload = function () {
  console.log("DONE", xhr.readyState); // readyState will be 4
};

xhr.send(null);

Spécifications

Specification
XMLHttpRequest Standard
# states

Compatibilité des navigateurs

BCD tables only load in the browser