--- title: XMLHttpRequest.send() slug: Web/API/XMLHttpRequest/send tags: - AJAX - API - HTTP запрос - XHR - XHR запрос - XMLHttpRequest - send - запрос translation_of: Web/API/XMLHttpRequest/send ---
{{APIRef('XMLHttpRequest')}}
Метод XMLHttpRequest.send()
отправляет запрос. Если запрос асинхронный (каким он является по умолчанию), то возврат из данного метода происходит сразу после отправления запроса. Если запрос синхронный, то метод возвращает управление только после получения ответа. Метод send()
принимает необязательные аргументы в тело запросов. Если метод запроса GET
или HEAD
, то аргументы игнорируются и тело запроса устанавливается в null.
Если заголовок {{HTTPHeader("Accept")}} не был задан с помощью {{domxref("XMLHttpRequest.setRequestHeader", "setRequestHeader()")}}, будет отправлено значение Accept
по умолчанию */*
.
XMLHttpRequest.send(body)
body {{optional_inline}}
Данные из параметра body оправляются в запросе через XHR. Это могут быть:
BodyInit
, которые, согласно спецификации Fetch могут быть: {{domxref("Blob")}}, {{domxref("BufferSource")}}, {{domxref("FormData")}}, {{domxref("URLSearchParams")}}, {{domxref("ReadableStream")}}, или объектом {{domxref("USVString")}}.Лучший способ передать двоичные данные (например при загрузке файлов) - это использование ArrayBufferView или Blobs в сочетании с методомsend()
.
Если никакого значения не определено в качестве body, то будет использовано значение по умолчанию: null
.
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({ form: 'data' }); // 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(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);
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('XMLHttpRequest', '#the-send()-method', 'send()')}} | {{Spec2('XMLHttpRequest')}} | WHATWG living standard |
{{Compat("api.XMLHttpRequest.send")}}