--- title: XMLHttpRequest.send() slug: Web/API/XMLHttpRequest/send tags: - AJAX - API - HTTP リクエスト - Reference - XHR - XHR リクエスト - XMLHttpRequest - send - ウェブ - メソッド translation_of: Web/API/XMLHttpRequest/send ---
{{domxref("XMLHttpRequest")}} の send()
メソッドは、リクエストをサーバーに送信します。リクエストが非同期の場合 (これが既定)、このメソッドはリクエストが送信されるとすぐに戻り、結果はイベントを用いて配信されます。リクエストが同期の場合、このメソッドはレスポンスが到着するまで戻りません。
send()
はリクエストの本文を示す引数を一つ受け取ることができます。これは主に {{HTTPMethod("PUT")}} のようなリクエストに使用されます。リクエストメソッドが {{HTTPMethod("GET")}} 又は {{HTTPMethod("HEAD")}} であれば、 body
引数は無視され、リクエストの本文は null
に設定されます。
{{domxref("XMLHttpRequest.setRequestHeader", "setRequestHeader()")}} を使用して {{HTTPHeader("Accept")}} ヘッダーを設定しなかった場合、 Accept
ヘッダーは "*/*"
型 (任意の型) が送信されます。
XMLHttpRequest.send(body)
BodyInit
: Fetch の仕様書によれば、 {{domxref("Blob")}}, {{domxref("BufferSource")}}, {{domxref("FormData")}}, {{domxref("URLSearchParams")}}, {{domxref("ReadableStream")}}, {{domxref("USVString")}} 型のオブジェクトが利用できます。null
が使用されます。バイナリコンテンツの送信 (例えばファイルのアップロード) の最適な方法は、 {{domxref("ArrayBufferView")}} または {{domxref("Blob")}} と send()
メソッドを組み合わせることです。
undefined
例外 | 説明 |
---|---|
InvalidStateError |
このリクエストに対してすでに send() が呼び出されているか、リクエストが完了している。 |
NetworkError |
読み込むリソースの型が Blob であり、メソッドが GET ではない。 |
var xhr = new XMLHttpRequest(); xhr.open('GET', '/server', true); xhr.onload = function () { // リクエストの終了。ここの処理を実行します。 }; xhr.send(null); // xhr.send('string');
//xhr.send(new Blob()); // xhr.send(new Int8Array()); // xhr.send(document);
var xhr = new XMLHttpRequest();
xhr.open("POST", '/server', true);
//リクエストに従って正しいヘッダー情報を送信してください
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() { // 状態が変化すると関数が呼び出されます。
if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
// リクエストの終了。ここの処理を実行します。
}
}
xhr.send("foo=bar&lorem=ipsum");
// xhr.send(new Int8Array());
// xhr.send(document);
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('XMLHttpRequest', '#the-send()-method', 'send()')}} | {{Spec2('XMLHttpRequest')}} | WHATWG living standard |