XMLHttpRequest.readyState
The XMLHttpRequest.readyState property returns the state an XMLHttpRequest client is in. An XHR client exists in one of the following states:
| Value | State | Description |
|---|---|---|
0 | UNSENT | Client has been created. open() not called yet. |
1 | OPENED |
open() has been called. |
2 | HEADERS_RECEIVED |
send() has been called, and headers and status are available. |
3 | LOADING | Downloading; responseText holds partial data. |
4 | DONE | The operation is complete. |
- UNSENT
-
The XMLHttpRequest client has been created, but the open() method hasn't been called yet.
- OPENED
-
open() method has been invoked. During this state, the request headers can be set using the setRequestHeader() method and the send() method can be called which will initiate the fetch.
- HEADERS_RECEIVED
-
send() has been called and the response headers have been received.
- LOADING
-
Response's body is being received. If
responseTypeis "text" or empty string,responseTextwill have the partial text response as it loads. - DONE
-
The fetch operation is complete. This could mean that either the data transfer has been completed successfully or failed.
Note: The state names are different in versions of Internet Explorer earlier than 11. 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 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);
Specifications
| Specification |
|---|
| XMLHttpRequest Standard (XMLHttpRequest) # states |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
readyState |
1 |
12 |
1 |
7 |
8 |
1.2 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
constants |
Yes |
12 |
9 |
9 |
12 |
Yes |
Yes |
18 |
9 |
Yes |
? |
1.0 |
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState