--- title: XMLHttpRequest.onreadystatechange slug: Web/API/XMLHttpRequest/onreadystatechange tags: - API - Event - Reference - XHR - XMLHttpRequest - onreadystatechange - readyState - イベント - ハンドラー - プロパティ translation_of: Web/API/XMLHttpRequest/onreadystatechange ---
{{APIRef}}

{{event("Event_handlers", "event handler")}} で、 readyState 属性が変化するたびに呼び出されます。コールバックはユーザーインターフェイスのスレッドから呼び出されます。 XMLHttpRequest.onreadystatechange プロパティは、 {{domxref("Document/readystatechange_event", "readystatechange")}} イベントが発生するたびに、つまり {{domxref("XMLHttpRequest")}} の {{domxref("XMLHttpRequest.readyState", "readyState")}} が変化するたびに呼び出されるイベントハンドラーを保持します。

警告: これは同期要求で使用してはいけません。また、ネイティブコードから使用してはいけません。

構文

XMLHttpRequest.onreadystatechange = callback;

const xhr = new XMLHttpRequest(),
    method = "GET",
    url = "https://developer.mozilla.org/";

xhr.open(method, url, true);
xhr.onreadystatechange = function () {
  // ローカルファイルでは、 Mozilla Firefox で成功するとステータスは0になります
  if(xhr.readyState === XMLHttpRequest.DONE) {
    var status = xhr.status;
    if (status === 0 || (status >= 200 && status < 400)) {
      // リクエストが正常に終了した
      console.log(xhr.responseText);
    } else {
      // あらら! リクエストでエラーが発生しました!
    }
  }
};
xhr.send();

仕様書

仕様書 状態 備考
{{SpecName('XMLHttpRequest', '#handler-xhr-onreadystatechange')}} {{Spec2('XMLHttpRequest')}} WHATWG living standard

ブラウザーの互換性

{{Compat("api.XMLHttpRequest.onreadystatechange")}}