XMLHttpRequest

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 (XHR) オブジェクトは、サーバーと対話するために使用されます。ページ全体を更新する必要なしに、データを受け取ることができます。これでユーザーの作業を中断させることなく、ウェブページの一部を更新することができます。

EventTarget XMLHttpRequestEventTarget XMLHttpRequest

XMLHttpRequest という名前ではあるものの、 XML だけでなく、あらゆる種類のデータを受け取るために使用することができます。

通信においてサーバーからのイベントデータやメッセージデータの受信を含む必要があるのであれば、サーバー送信イベントEventSource インターフェイスを使用することも検討してください。全二重の通信では、 WebSocket の方が良いかもしれません。

メモ: この機能はウェブワーカー内で利用可能です。

コンストラクター

XMLHttpRequest()

XMLHttpRequest を初期化するコンストラクターです。これは、他のメソッドを呼び出す前に呼び出さなければなりません。

インスタンスプロパティ

このインターフェイスは、 XMLHttpRequestEventTarget および EventTarget のプロパティを継承しています。

XMLHttpRequest.readyState 読取専用

リクエストの状態を表す数値を返します。

XMLHttpRequest.response 読取専用

ArrayBufferBlobDocument、JavaScript オブジェクト、文字列の何れか(XMLHttpRequest.responseType の値による)で、リクエストのエンティティ本体を返します。

XMLHttpRequest.responseText 読取専用

文字列で、リクエストに対するレスポンスをテキスト形式で返すか、リクエストが失敗した場合や、まだ送信されていない場合は null を返します。

XMLHttpRequest.responseType

レスポンスの種類を示します。

XMLHttpRequest.responseURL 読取専用

レスポンスのシリアライズされた URL、または URL が null であれば空文字列を返します。

XMLHttpRequest.responseXML 読取専用

Document でリクエストに対するレスポンスが入ったを返すか、またはリクエストが成功しなかった場合、まだ送信されていない場合、 XML または HTML として解釈できなかった場合は null を返します。ウェブワーカーでは利用できません。

XMLHttpRequest.status 読取専用

リクエストの HTTP レスポンスステータスコードを返します。

XMLHttpRequest.statusText 読取専用

文字列で、HTTP サーバーから返ってきたレスポンス文字列を返します。 XMLHttpRequest.status とは異なり、("OK" のような)レスポンスメッセージの完全な文が含まれています。

メモ: HTTP/2 仕様書 RFC 7540, セクション 8.1.2.4: Response Pseudo-Header Fields によれば、 HTTP/2 では、 HTTP/1.1 のステータス行に含まれていたバージョンや原因の文を伝える方法が定義されていません。

XMLHttpRequest.timeout

リクエストを自動的に終了するまでの時間をミリ秒単位で表します。

XMLHttpRequest.upload 読取専用

XMLHttpRequestUpload で、アップロードプロセスを表します。

XMLHttpRequest.withCredentials

サイト間の Access-Control リクエストでクッキーや認証ヘッダーなどの資格情報を使用する場合は true を返します。そうでなければ false を返します。

標準外のプロパティ

XMLHttpRequest.channel 読取専用

リクエストの実行の際にオブジェクトによって使われるチャンネルです。

XMLHttpRequest.mozAnon 読取専用

論理値です。 true の場合、リクエストを Cookie や認証ヘッダーを伴わずに送信します。

XMLHttpRequest.mozSystem 読取専用

論理値です。 true の場合、リクエストで同一オリジンポリシーは適用されません。

XMLHttpRequest.mozBackgroundRequest

論理値です。このオブジェクトがバックグラウンドサービスのリクエストを表しているかどうかを示します。

インスタンスメソッド

XMLHttpRequest.abort()

リクエストがすでに送信されている場合、リクエストを中止します。

XMLHttpRequest.getAllResponseHeaders()

すべてのレスポンスヘッダーを、 CRLF で区切り、文字列として返します。レスポンスを何も受け取らなかった場合は null を返します。

XMLHttpRequest.getResponseHeader()

指定したヘッダーを含む文字列を返します。レスポンスを受信していない、またはレスポンス内に指定したヘッダーが存在しない場合は null を返します。

XMLHttpRequest.open()

リクエストを初期化します。

XMLHttpRequest.overrideMimeType()

サーバーから返ってくる MIME タイプを上書きします。

XMLHttpRequest.send()

リクエストを送信します。このリクエストが非同期(既定)の場合、このメソッドはリクエストが送るとすぐに返ります。

XMLHttpRequest.setRequestHeader()

HTTP リクエストヘッダーの値を設定します。 setRequestHeader()open() の後、および send() の前に呼び出さなくてはいけません。

イベント

abort

例えばプログラムが XMLHttpRequest.abort() を呼び出した時など、リクエストが中断されたときに発生します。 onabort イベントハンドラープロパティを通して利用することもできます。

error

リクエストでエラーが発生したときに発生します。 onerror イベントハンドラープロパティを通して利用することもできます。

load

XMLHttpRequest のトランザクションが成功裏に完了したときに発生します。 onload イベントハンドラープロパティを通して利用することもできます。

loadend

リクエストが完了したときに、成功した場合(load の後)、成功しなかった場合(abort または error の後)のどちらでも発生します。 onloadend イベントハンドラープロパティを通して利用することもできます。

loadstart

リクエストがデータを読み込み始めたときに発生します。 onloadstart イベントハンドラープロパティを通して利用することもできます。

progress

リクエストがもっとデータを受信した際に定期的に発生します。 onprogress イベントハンドラープロパティを通して利用することもできます。

readystatechange

readyState プロパティが変化するたびに発生します。 onreadystatechange イベントハンドラープロパティを通して利用することもできます。

timeout

プリセット時間が過ぎたために進行が終了したときに発生します。 ontimeout イベントハンドラープロパティを通して利用することもできます。

仕様書

Specification
XMLHttpRequest Standard
# interface-xmlhttprequest

ブラウザーの互換性

BCD tables only load in the browser

関連情報