--- 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 |
| Возможность | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
|---|---|---|---|---|---|---|
| Базовая поддержка | {{CompatChrome(1)}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("1.0")}} | {{CompatIe('5')}}[1] {{CompatIe('7')}} |
{{CompatVersionUnknown}} | {{CompatSafari('1.2')}} |
send(ArrayBuffer) |
{{CompatChrome(9)}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("9.0")}} | {{CompatIe('10')}} | {{CompatOpera('11.60')}} | {{compatUnknown}} |
send(ArrayBufferView) |
{{CompatChrome(22)}} | {{CompatUnknown}} | {{CompatGeckoDesktop("20.0")}} | {{compatUnknown}} | {{compatUnknown}} | {{compatUnknown}} |
send(Blob) |
{{CompatChrome(7)}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("1.9.2")}} | {{CompatIe('10')}} | {{CompatOpera('12')}} | {{compatUnknown}} |
send(FormData) |
{{CompatChrome(6)}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("2.0")}} | {{CompatIe('10')}} | {{CompatOpera('12')}} | {{compatUnknown}} |
send(URLSearchParams) |
{{CompatChrome(59)}} | {{CompatUnknown}} | {{CompatGeckoDesktop("44.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
| Возможность | Android Webview | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|---|
| Базовая поддержка | {{CompatUnknown}} | {{CompatChrome(1)}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
send(ArrayBuffer) |
{{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{compatUnknown}} | {{CompatUnknown}} |
send(ArrayBufferView) |
{{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{compatUnknown}} | {{CompatUnknown}} |
send(Blob) |
{{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{compatUnknown}} | {{CompatUnknown}} |
send(FormData) |
{{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{compatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
send(URLSearchParams) |
{{CompatUnknown}} | {{CompatChrome(59)}} | {{CompatUnknown}} | {{CompatGeckoMobile("44.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
[1] Возможность реализуется с помощью ActiveXObject(). Начиная с версии 7 Internet Explorer реализует стандарт XMLHttpRequest.