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()
принимает необязательные аргументы в тело запросов. Если метод запроса GET
или HEAD
, то аргументы игнорируются и тело запроса устанавливается в null.
Если заголовок Accept
не был задан с помощью setRequestHeader()
, будет отправлено значение Accept
по умолчанию */*
.
Синтаксис
XMLHttpRequest.send(body)
Параметры
- body Необязательный
-
Данные из параметра body оправляются в запросе через XHR. Это могут быть:
Document
, и в этом случае данные будут сериализованы перед отправкой.BodyInit
, которые, согласно спецификации Fetch могут быть:Blob
,BufferSource
,FormData
,URLSearchParams
,ReadableStream
, или объектомUSVString
.
Лучший способ передать двоичные данные (например при загрузке файлов) - это использование 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);
Спецификации
Specification |
---|
XMLHttpRequest Standard # the-send()-method |
Совместимость с браузерами
BCD tables only load in the browser