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.
XMLHttpRequest
の send()
メソッドは、リクエストをサーバーに送信します。
リクエストが非同期の場合(これが既定)、このメソッドはリクエストが送信されるとすぐに戻り、結果はイベントを用いて配信されます。リクエストが同期の場合、このメソッドはレスポンスが到着するまで戻りません。
send()
はリクエストの本文を示す引数を一つ受け取ることができます。これは主に PUT
のようなリクエストに使用されます。リクエストメソッドが GET
または HEAD
であれば、 body
引数は無視され、リクエストの本文は null
に設定されます。
Accept
ヘッダーを setRequestHeader()
を使用して設定しなかった場合、 Accept
ヘッダーは "*/*"
型 (任意の型) が送信されます。
構文
send()
send(body)
引数
body
省略可-
XHR のリクエストの中で送られる本文データです。次のものが使用できます。
Document
: 送信前にシリアライズされている場合。XMLHttpRequestBodyInit
: Fetch の仕様書によれば、Blob
、ArrayBuffer
、TypedArray
、DataView
、FormData
、URLSearchParams
、文字列リテラル、オブジェクトが利用できます。null
body に値が設定されていない場合、既定値の
null
が使用されます。
バイナリーコンテンツの送信(例えばファイルのアップロード)の最適な方法は、TypedArray
、DataView
、Blob
の何れかのオブジェクトと send()
メソッドを組み合わせることです。
返値
なし (undefined
)。
例外
InvalidStateError
DOMException
-
このリクエストに対してすでに
send()
が呼び出されているか、リクエストが完了している。 NetworkError
DOMException
-
読み込むリソースの型が Blob であり、メソッドが
GET
ではない。
GET の例
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 の例
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