Spec-Zone.ru › Web APIs

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).

Исключения

InvalidStateError DOMException

Выбрасывается, если send() уже был вызван для запроса и/или запрос завершён.

NetworkError DOMException

Выбрасывается, если тип ресурса, который нужно получить, — 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
10.1–15По умолчанию не отправляет правильный заголовок Content-Type. См. ошибку 227477.
59 44 43 15
10.3–15По умолчанию не отправляет правильный заголовок Content-Type. См. ошибку 227477.
7.0 59

См. также

  • Использование XMLHttpRequest
  • HTML в XMLHttpRequest

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API