XMLHttpRequest

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

XMLHttpRequestAJAX プログラミングで頻繁に使用されます。

EventTarget XMLHttpRequestEventTarget XMLHttpRequest

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

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

注: This feature is available in Web Workers, except for Service Workers

コンストラクター

XMLHttpRequest()

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

プロパティ

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

XMLHttpRequest.onreadystatechange

イベントハンドラー で、 readyState 属性が変化する度に呼び出されます。

XMLHttpRequest.readyState 読取専用

unsigned short でリクエストの状態を返します。

XMLHttpRequest.response 読取専用

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

XMLHttpRequest.responseText 読取専用

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

XMLHttpRequest.responseType

列挙型の値で、レスポンス型を定義します。

XMLHttpRequest.responseURL 読取専用

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

XMLHttpRequest.responseXML 読取専用

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

XMLHttpRequest.status 読取専用

unsigned short でリクエストに対するレスポンスのステータスを返します。

XMLHttpRequest.statusText 読取専用

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

Note: HTTP/2 仕様書 (8.1.2.4 レスポンス擬似ヘッダーフィールド) によれば、 HTTP/2 では、 HTTP/1.1 のステータス行に含まれていたバージョンや原因の文を伝える方法が定義されていません。

XMLHttpRequest.timeout

unsigned long 型で、リクエストを自動的に終了できるようになるまでの時間をミリ秒単位で表します。

XMLHttpRequestEventTarget.ontimeout

イベントハンドラーで、リクエストがタイムアウトするたびに呼び出されます。

XMLHttpRequest.upload 読取専用

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

XMLHttpRequest.withCredentials

論理値で、サイト間の Access-Control リクエストでクッキーや認証ヘッダーなどの資格情報を使用するかどうかを示します。

標準外のプロパティ

XMLHttpRequest.channel読取専用

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

XMLHttpRequest.mozAnon読取専用

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

XMLHttpRequest.mozSystem読取専用

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

XMLHttpRequest.mozBackgroundRequest

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

イベントハンドラー

onreadystatechangeXMLHttpRequest のインスタンスのプロパティとして、すべてのブラウザーが対応しています。

それ以来、数多くの追加のイベントハンドラーが様々なブラウザーに実装されてきています (onload, onerror, onprogress, など)。 XMLHttpRequest の使用を参照してください。

Firefox を含め、より新しいブラウザーでは、 XMLHttpRequest のイベントを on* プロパティをハンドラー関数に設定する方法に加えて、標準の addEventListener() API で待ち受けすることにも対応しています。

メソッド

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 プロパティを通して利用することもできます。

timeout

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

仕様書

Specification
XMLHttpRequest Standard
# interface-xmlhttprequest

ブラウザーの互換性

BCD tables only load in the browser

関連情報