XMLHttpRequest
==============

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

EventTarget

XMLHttpRequestEventTarget

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

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

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

コンストラクター
--------

`XMLHttpRequest()`

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

インスタンスプロパティ
-----------

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

`XMLHttpRequest.readyState` 読取専用 

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

`XMLHttpRequest.response` 読取専用 

`ArrayBuffer`、`Blob`、`Document`、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 with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `XMLSerializer`: DOM ツリーの XML へのシリアライズ
* XMLHttpRequest の使用
* フェッチ API