--- 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. Это могут быть:

Лучший способ передать двоичные данные (например при загрузке файлов) - это использование 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);

Спецификации

Спецификация Статус Комментарий
{{SpecName('XMLHttpRequest', '#the-send()-method', 'send()')}} {{Spec2('XMLHttpRequest')}} WHATWG living standard

Поддержка браузерами

{{CompatibilityTable}}
Возможность 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.

Смотрите также