XMLHttpRequest.send()

Метод XMLHttpRequest.send() отправляет запрос. Если запрос асинхронный (каким он является по-умолчанию), то возврат из данного метода происходит сразу после отправления запроса. Если запрос синхронный, то метод возвращает управление только после получения ответа. Метод send() принимает необязательные аргументы в тело запросов. Если метод запроса GET или HEAD, то аргументы игнорируются и тело запроса устанавливается в null.

Если заголовок Accept не был задан с помощью setRequestHeader(), будет отправлено значение Accept по-умолчанию */*.

Синтаксис

XMLHttpRequest.send(body)

Параметры

body Необязательный

Данные из параметра body оправляются в запросе через XHR. Это могут быть:

Лучший способ передать двоичные данные (например при загрузке файлов) - это использование ArrayBufferView или Blobs в сочетании с методомsend().

Если никакого значения не определено в качестве body, то будет использовано значение по-умолчанию: null.

Возвращаемое значение

undefined.

Исключения

Исключение Описание
InvalidStateError send() уже был вызван для запроса, и/или запрос завершен.
NetworkError Тип запрошенного ресурса - Blob, но метод запроса не GET.

Пример: 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({ form: 'data' });
// xhr.send(document);

Пример: POST

var xhr = new XMLHttpRequest();
xhr.open("POST", '/server', true);

//Передает правильный заголовок в запросе
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xhr.onreadystatechange = function() {//Вызывает функцию при смене состояния.
    if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
        // Запрос завершен. Здесь можно обрабатывать результат.
    }
}
xhr.send("foo=bar&lorem=ipsum"); 
// xhr.send('string'); 
// xhr.send(new Blob()); 
// xhr.send(new Int8Array()); 
// xhr.send({ form: 'data' }); 
// xhr.send(document);

Спецификации

Спецификация Статус Комментарий
XMLHttpRequest
Определение 'send()' в этой спецификации.
Живой стандарт WHATWG living standard

Поддержка браузерами

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
Возможность Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Базовая поддержка 1 (Да) 1.0 (1.7 или ранее) 5[1]
7
(Да) 1.2
send(ArrayBuffer) 9 (Да) 9.0 (9.0) 10 11.60 ?
send(ArrayBufferView) 22 ? 20.0 (20.0) ? ? ?
send(Blob) 7 (Да) 3.6 (1.9.2) 10 12 ?
send(FormData) 6 (Да) 4.0 (2.0) 10 12 ?
send(URLSearchParams) 59 ? 44.0 (44.0) ? ? ?
Возможность Android Webview Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка ? 1 (Да) (Да) ? ? ?
send(ArrayBuffer) ? ? ? ? ? ? ?
send(ArrayBufferView) ? ? ? ? ? ? ?
send(Blob) ? ? ? ? ? ? ?
send(FormData) ? ? ? ? ? ? ?
send(URLSearchParams) ? 59 ? 44.0 (44.0) ? ? ?

[1] Возможность реализуется с помощью ActiveXObject(). Начиная с версии 7 Internet Explorer реализует стандарт XMLHttpRequest.

Смотрите также