XMLHttpRequest.response

XMLHttpRequest response プロパティは、そのリクエストのresponseTypeによって、ArrayBuffer, Blob, Document, JavaScript Object, or DOMStringといったレスポンスのボディを返します。

構文

var body = XMLHttpRequest.response;

responseTypeの値に基づく適切なオブジェクト。 open()を呼び出してリクエストを初期化した後や、send()を呼び出してリクエストをサーバーに送信する前に、responseTypeの値を設定することで、特定の形式でデータを提供するようにリクエストができます。

リクエストが未完了または失敗する場合、値はnullです。ただし、"text"や空の文字列である("")を使用してテキストデータを読み込む場合は除きます。リクエストがまだLOADING readyState (3)にある間、レスポンスはこれまでのレスポンスを含むことがあります。

レスポンスタイプは以下のとおりです。

""
An empty responseType string is treated the same as "text", the default type (therefore, as a DOMString.
arraybuffer
The response is a JavaScript ArrayBuffer containing binary data.
blob
The response is a Blob object containing the binary data.
document
The response is an HTML Document or XML XMLDocument, as appropriate based on the MIME type of the received data. See HTML in XMLHttpRequest to learn more about using XHR to fetch HTML content.
json
The response is a JavaScript object created by parsing the contents of received data as JSON.
text
Similar to "arraybuffer", but the data is received in a stream. When using this response type, the value in response is only available in the handler for the progress event, and contains the cumulative data received since the request was sent.
ms-stream
The response is part of a streaming download; this response type is only allowed for download requests, and is only supported by Internet Explorer.

下記に、サーバーからページをロードして処理する関数load()を例として提示します。仕組みとしては、XMLHttpRequestオブジェクトを作成し、readystatechangeイベントのリスナー(readyStateイベントがDONE (4)に変わるとresponseが取得され、それをload()のコールバック関数に渡すといった)を作成しています。

コンテンツは生のテキストデータとして処理されます(デフォルトのresponseTypeを上書きするものは何もないため)。

var url = 'somePage.html'; //A local page

function load(url, callback) {
  var xhr = new XMLHttpRequest();

  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {
      callback(xhr.response);
    }
  }

  xhr.open('GET', url, true);
  xhr.send('');
}
 

仕様書

仕様書 状態 備考
XMLHttpRequest 現行の標準 WHATWG living standard

ブラウザの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
responseChrome 完全対応 ありEdge 完全対応 12Firefox 完全対応 ありIE 完全対応 10Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応

関連