XMLHttpRequest: метод send()
Базовая Широко доступна
Эта функция хорошо зарекомендовала себя и работает во многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Примечание: Эта функция доступна в Web Workers, за исключением Service Workers.
Метод XMLHttpRequest send() отправляет запрос на сервер.
Если запрос асинхронный (что является значением по умолчанию), этот метод возвращается как только запрос отправлен, а результат передаётся с помощью событий. Если запрос синхронный, этот метод не возвращается, пока ответ не придёт.
send() принимает необязательный параметр, позволяющий указать тело запроса; это используется в основном для запросов, таких как PUT. Если метод запроса GET или HEAD, параметр body игнорируется, и тело запроса устанавливается в null.
Если не был задан заголовок Accept с помощью setRequestHeader(), отправляется заголовок Accept типа "*/*" (любой тип).
Синтаксис
send() send(body)
Параметры
bodyНеобязательно-
Тело данных, которое должно быть отправлено в запросе XHR. Оно может быть:
- Объект
Document, в этом случае он сериализуется перед отправкой. - Объект
XMLHttpRequestBodyInit, который согласно спецификации Fetch может бытьBlob,ArrayBuffer,TypedArray,DataView,FormData,URLSearchParamsили строка. null
Если для тела не указано значение, используется значение по умолчанию
null. - Объект
Лучший способ отправки двоичного содержимого (например, при загрузке файлов) — использовать объект TypedArray, DataView или Blob в сочетании с методом send().
Возвращаемое значение
None (undefined).
Исключения
-
InvalidStateErrorDOMException -
Выбрасывается, если
send()уже был вызван для запроса и/или запрос завершён. -
NetworkErrorDOMException -
Выбрасывается, если тип ресурса, который нужно получить, — Blob, а метод не
GET.
Пример: GET
const xhr = new XMLHttpRequest();
xhr.open("GET", "/server", true);
xhr.onload = () => {
// Request finished. Do processing here.
};
xhr.send(null);
// xhr.send('string');
// xhr.send(new Blob());
// xhr.send(new Int8Array());
// xhr.send(document);
Пример: POST
const xhr = new XMLHttpRequest();
xhr.open("POST", "/server", true);
// Send the proper header information along with the request
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = () => {
// Call a function when the state changes.
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
// Request finished. Do processing here.
}
};
xhr.send("foo=bar&lorem=ipsum");
// xhr.send(new Int8Array());
// xhr.send(document);
Спецификации
| Спецификация |
|---|
| XMLHttpRequest # the-send()-method |
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
send |
1 | 12 | 1 | 8 | 1.2 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
body_ArrayBufferView_type |
22 | 12 | 20 | 11.6 | 7 | 25 | 20 | 12 | 7 | 1.5 | 4.4 |
body_ArrayBuffer_type |
9 | 12 | 9 | 11.6 | 6 | 18 | 9 | 12 | 6 | 1.0 | ≤37 |
body_Blob_type |
22 | 12 | 2 | 12 | 6 | 25 | 4 | 12 | 6 | 1.5 | 4.4 |
body_FormData_type |
6 | 12 | 2 | 12 | 6 | 18 | 4 | 12 | 6 | 1.0 | ≤37 |
body_URLSearchParams_type |
59 | 17 | 44 | 46 | 15 | 59 | 44 | 43 | 15 | 7.0 | 59 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send