XMLHttpRequest: send() メソッド

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.

XMLHttpRequestsend() メソッドは、リクエストをサーバーに送信します。

リクエストが非同期の場合(これが既定)、このメソッドはリクエストが送信されるとすぐに戻り、結果はイベントを用いて配信されます。リクエストが同期の場合、このメソッドはレスポンスが到着するまで戻りません。

send() はリクエストの本文を示す引数を一つ受け取ることができます。これは主に PUT のようなリクエストに使用されます。リクエストメソッドが GET または HEAD であれば、 body 引数は無視され、リクエストの本文は null に設定されます。

Accept ヘッダーを setRequestHeader() を使用して設定しなかった場合、 Accept ヘッダーは "*/*" 型 (任意の型) が送信されます。

構文

js
send()
send(body)

引数

body 省略可

XHR のリクエストの中で送られる本文データです。次のものが使用できます。

body に値が設定されていない場合、既定値の null が使用されます。

バイナリーコンテンツの送信(例えばファイルのアップロード)の最適な方法は、TypedArrayDataViewBlob の何れかのオブジェクトと send() メソッドを組み合わせることです。

返値

なし (undefined)。

例外

InvalidStateError DOMException

このリクエストに対してすでに send() が呼び出されているか、リクエストが完了している。

NetworkError DOMException

読み込むリソースの型が Blob であり、メソッドが GET ではない。

GET の例

js
const xhr = new XMLHttpRequest();
xhr.open("GET", "/server", true);

xhr.onload = () => {
  // リクエストの終了。ここの処理を実行します。
};

xhr.send(null);
// xhr.send('string');
// xhr.send(new Blob());
// xhr.send(new Int8Array());
// xhr.send(document);

POST の例

js
const xhr = new XMLHttpRequest();
xhr.open("POST", "/server", true);

//リクエストに従って正しいヘッダー情報を送信してください
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

xhr.onreadystatechange = () => {
  // 状態が変化すると関数が呼び出されます。
  if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
    // リクエストの終了。ここの処理を実行します。
  }
};
xhr.send("foo=bar&lorem=ipsum");
// xhr.send(new Int8Array());
// xhr.send(document);

仕様書

Specification
XMLHttpRequest Standard
# the-send()-method

ブラウザーの互換性

BCD tables only load in the browser

関連情報