XMLHttpRequest: readyState プロパティ

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

XMLHttpRequest.readyState プロパティは XMLHttpRequest (XHR) クライアントの状態を返します。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

取得操作が完了している。これはデータ転送が成功または失敗で完了したことを意味している。

js
const xhr = new XMLHttpRequest();
console.log("UNSENT", xhr.readyState); // readyState は 0 になる

xhr.open("GET", "/api", true);
console.log("OPENED", xhr.readyState); // readyState は 1 になる

xhr.onprogress = () => {
  console.log("LOADING", xhr.readyState); // readyState は 3 になる
};

xhr.onload = () => {
  console.log("DONE", xhr.readyState); // readyState は 4 になる
};

xhr.send(null);

仕様書

Specification
XMLHttpRequest Standard
# states

ブラウザーの互換性

BCD tables only load in the browser