XMLHttpRequest.readyState

XMLHttpRequest.readyState プロパティは XMLHttpRequest クライアントの状態を返します。XHR クライアントは次の状態のいずれかをとります:

状態 説明
0 UNSENT クライアントは作成済み。open() はまだ呼ばれていない。
1 OPENED open() が呼び出し済み。
2 HEADERS_RECEIVED send() が呼び出し済みで、ヘッダーとステータスが利用可能。
3 LOADING ダウンロード中。responseText には部分データが入っている。
4 DONE 操作が完了した。
UNSENT
XMLHttpRequest クライアントは作成済みだが、まだ open() メソッドは呼ばれていない。
OPENED
open() メソッドは実行済み。この状態の間は、リクエストヘッダーを setRequestHeader() メソッドを使ってセットできて、send() メソッドを呼び出して取得を開始できる。
HEADERS_RECEIVED
send() は呼び出し済みでレスポンスヘッダーを受け取り済み。
LOADING
レスポンスボディを受け取っている。ResponseType が "text" か空文字の場合、responseText はロードするごとに部分テキストを持つ。
DONE
取得操作が完了している。つまりデータ転送が完全に成功したか失敗したかどちらでもありうる。

状態名は Internet Explorer 11 以前のバージョンと異なります。UNSENT, OPENED, HEADERS_RECEIVED, LOADING,DONE, の代わりに、READYSTATE_UNINITIALIZED (0), READYSTATE_LOADING (1), READYSTATE_LOADED (2), READYSTATE_INTERACTIVE (3) and READYSTATE_COMPLETE (4) が使われています。

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);

仕様

仕様書 策定状況 コメント
XMLHttpRequest 現行の標準 WHATWG living standard

ブラウザ実装状況

BCD tables only load in the browser