XMLHttpRequest
Базовая Широко доступная *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Примечание: Эта функция доступна в Web Workers, за исключением Service Workers.
XMLHttpRequest (XHR) объекты используются для взаимодействия с серверами. Вы можете извлекать данные из URL-адреса, не перезагружая всю страницу. Это позволяет веб-странице обновлять только часть страницы без прерывания действий пользователя.
Несмотря на свое название, XMLHttpRequest может использоваться для извлечения любого типа данных, а не только XML.
Если ваше взаимодействие должно включать получение данных событий или данных сообщений от сервера, рассмотрите использование событий, отправляемых сервером через EventSource интерфейс. Для полнодуплексного взаимодействия WebSockets может быть лучшим выбором.
Конструктор
XMLHttpRequest()-
Конструктор инициализирует
XMLHttpRequest. Его необходимо вызвать перед любыми другими вызовами методов.
Свойства экземпляра
Этот интерфейс также наследует свойства XMLHttpRequestEventTarget и EventTarget.
-
XMLHttpRequest.readyStateТолько для чтения -
Возвращает число, представляющее состояние запроса.
-
XMLHttpRequest.responseТолько для чтения -
Возвращает
ArrayBuffer,Blob,Document, объект JavaScript или строку, в зависимости от значенияXMLHttpRequest.responseType, содержащую тело сущности ответа. -
XMLHttpRequest.responseTextТолько для чтения -
Возвращает строку, содержащую текст ответа на запрос, или
null, если запрос не удался или еще не отправлен. XMLHttpRequest.responseType-
Определяет тип ответа.
-
XMLHttpRequest.responseURLТолько для чтения -
Возвращает сериализованный URL ответа или пустую строку, если URL равен null.
-
XMLHttpRequest.responseXMLТолько для чтения -
Возвращает
Document, содержащий ответ на запрос, илиnull, если запрос не удался, еще не был отправлен или не может быть распарсен как XML или HTML. Не доступно в Web Workers. -
XMLHttpRequest.statusТолько для чтения -
Возвращает код состояния HTTP ответа запроса.
-
XMLHttpRequest.statusTextТолько для чтения -
Возвращает строку, содержащую строку ответа, возвращенную HTTP-сервером. В отличие от
XMLHttpRequest.status, она включает весь текст сообщения ответа ("OK", например).Примечание: Согласно спецификации HTTP/2 RFC 7540, раздел 8.1.2.4: Поля псевдозаголовков ответа, HTTP/2 не определяет способ передачи версии или фразы причины, которые включены в строку состояния HTTP/1.1.
XMLHttpRequest.timeout-
Время в миллисекундах, которое запрос может занимать, прежде чем автоматически будет завершен.
-
XMLHttpRequest.uploadТолько для чтения -
XMLHttpRequestUploadпредставляющий процесс загрузки. XMLHttpRequest.withCredentials-
Возвращает
true, если межсайтовыеAccess-Controlзапросы должны выполняться с использованием учетных данных, таких как куки или заголовки авторизации; в противном случаеfalse.
Нестандартные свойства
-
XMLHttpRequest.channelТолько для чтения -
Канал, используемый объектом при выполнении запроса.
-
XMLHttpRequest.mozAnonТолько для чтения -
Булево значение. Если true, запрос будет отправлен без куки и заголовков аутентификации.
-
XMLHttpRequest.mozSystemТолько для чтения -
Булево значение. Если true, политика одного происхождения не будет применяться к запросу.
XMLHttpRequest.mozBackgroundRequest-
Булево значение. Указывает, представляет ли объект запрос фоновой службы.
Методы экземпляра
XMLHttpRequest.abort()-
Прерывает запрос, если он уже был отправлен.
XMLHttpRequest.getAllResponseHeaders()-
Возвращает все заголовки ответа, разделенные CRLF, в виде строки, или
nullесли ответ еще не получен. XMLHttpRequest.getResponseHeader()-
Возвращает строку, содержащую текст указанного заголовка, или
null, если ответ еще не получен или заголовок не существует в ответе. XMLHttpRequest.open()-
Инициализирует запрос.
XMLHttpRequest.overrideMimeType()-
Переопределяет тип MIME, возвращаемый сервером.
XMLHttpRequest.send()-
Отправляет запрос. Если запрос асинхронный (что является по умолчанию), этот метод возвращается как только запрос отправлен.
-
XMLHttpRequest.setAttributionReporting()Безопасный контекст Экспериментальный -
Указывает, что вы хотите, чтобы ответ запроса смог зарегистрировать источник атрибуции или вызвать событие.
XMLHttpRequest.setRequestHeader()-
Устанавливает значение заголовка HTTP запроса. Вам нужно вызвать
setRequestHeader()послеopen(), но доsend().
События
abort-
Срабатывает, когда запрос был прерван, например, из-за вызова программы
XMLHttpRequest.abort(). Также доступен через свойство обработчика событийonabort. error-
Срабатывает, когда запрос столкнулся с ошибкой. Также доступен через свойство обработчика событий
onerror. load-
Срабатывает, когда успешная транзакция
XMLHttpRequestзавершена. Также доступен через свойство обработчика событийonload. loadend-
Срабатывает, когда запрос завершен, будь то успешно (после
load) или неуспешно (послеabortилиerror). Также доступен через свойство обработчика событийonloadend. loadstart-
Срабатывает, когда запрос начал загружать данные. Также доступен через свойство обработчика событий
onloadstart. progress-
Срабатывает периодически, когда запрос получает больше данных. Также доступен через свойство обработчика событий
onprogress. readystatechange-
Срабатывает всякий раз, когда изменяется свойство
readyState. Также доступен через свойство обработчика событийonreadystatechange. timeout-
Срабатывает, когда выполнение прерывается из-за истечения установленного времени. Также доступен через свойство обработчика событий
ontimeout.
Спецификации
| Спецификация |
|---|
| XMLHttpRequest # interface-xmlhttprequest |
Совместимость с браузерами
| Настольный | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
XMLHttpRequest |
1 | 12 | 1 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
XMLHttpRequest |
1 | 12 | 1 | 8 | 1.2 | 18 | 4 | 10.1 | 1 | 1.0 | ≤37 |
abort |
1 | 12 | 1 | ≤12.1 | 1.2 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
abort_event |
1 | 12 | 3.5 | ≤12.1 | 1.3 | 18 | 4 | ≤12.1 | 1 | 1.0 | ≤37 |
authorization_removed_cross_origin |
Нет | Нет | 111 | Нет | 16.1 | Нет | 111 | Нет | 16.1 | Нет | Нет |
error_event |
1 | 12 | 1 | ≤12.1 | 1.3 | 18 | 4 | ≤12.1 | 1 | 1.0 | ≤37 |
getAllResponseHeaders |
1 | 12 | 1Начиная с Firefox 49, пустые заголовки возвращаются как пустые строки, если параметрnetwork.http.keep_empty_response_headers_as_empty_string установлен в true, по умолчанию false. До Firefox 49 пустые заголовки игнорировались. Начиная с Firefox 50 параметр по умолчанию true. |
≤12.1 | 1.2 | 18 | 4Начиная с Firefox для Android 49, пустые заголовки возвращаются как пустые строки, если параметрnetwork.http.keep_empty_response_headers_as_empty_string установлен в true, по умолчанию false. До Firefox для Android 49 пустые заголовки игнорировались. Начиная с Firefox для Android 50 параметр по умолчанию true. |
≤12.1 | 1 | 1.0 | 4.4 |
getResponseHeader |
1 | 12 | 1Начиная с Firefox 49, пустые заголовки возвращаются как пустые строки, если параметрnetwork.http.keep_empty_response_headers_as_empty_string установлен в true, по умолчанию false. До Firefox 49 пустые заголовки игнорировались. Начиная с Firefox 50 параметр по умолчанию true. |
8 | 1.2 | 18 | 4Начиная с Firefox для Android 49, пустые заголовки возвращаются как пустые строки, если параметрnetwork.http.keep_empty_response_headers_as_empty_string установлен в true, по умолчанию false. До Firefox для Android 49 пустые заголовки игнорировались. Начиная с Firefox для Android 50 параметр по умолчанию true. |
10.1 | 1 | 1.0 | 4.4 |
load_event |
1 | 12 | 1 | ≤12.1 | 1.3 | 18 | 4 | ≤12.1 | 1 | 1.0 | ≤37 |
loadend_event |
18 | 12 | 5 | ≤12.1 | 4 | 18 | 5 | ≤12.1 | 3 | 1.0 | 4.4 |
loadstart_event |
1 | 12 | 3.5 | ≤12.1 | 1.3 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
open |
1 | 12 | 1Начиная с Firefox 30, синхронные запросы в основном потоке устарели из-за их негативного влияния на производительность и пользовательский опыт. Поэтому параметрasync не может быть false за исключением Worker. |
8 | 1.2 | 18 | 4Начиная с Firefox для Android 30, синхронные запросы в основном потоке устарели из-за их негативного влияния на производительность и пользовательский опыт. Поэтому параметрasync не может быть false за исключением Worker. |
10.1 | 1 | 1.0 | 4.4 |
overrideMimeType |
1 | 12 | 1 | ≤12.1 | 1.2 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
progress_event |
1 | 12 | 1 | ≤12.1 | 3 | 18 | 4 | ≤12.1 | 1 | 1.0 | ≤37 |
readyState |
1 | 12 | 1 | 8 | 1.2 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
readystatechange_event |
1 | 12 | 1 | 9 | 1.2 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
response |
9 | 12 | 6 | 11.6 | 5.1 | 18 | 6 | 12 | 5 | 1.0 | 3 |
responseText |
1 | 12 | 1 | 8 | 1.2 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
responseType |
31 | 12 | 6 | 1812–15 | 5.1 | 31 | 50 | 1812–14 | 5 | 2.0 | 4.4.3 |
responseURL |
37 | 14 | 32 | 24 | 8 | 37 | 32 | 24 | 8 | 3.0 | 37 |
responseXML |
1 | 12 | 1Перед Firefox 51 при ошибке парсинга полученных данных добавлялся узел<parsererror> в начало Document, а затем возвращалось значение Document в любом состоянии. Это не соответствовало спецификации. Начиная с Firefox 51, в этом случае теперь правильно возвращается значение null в соответствии со спецификацией. |
≤12.1 | 3 | 18 | 4Перед Firefox для Android 51 при ошибке парсинга полученных данных добавлялся узел<parsererror> в начало Document, а затем возвращалось значение Document в любом состоянии. Это не соответствовало спецификации. Начиная с Firefox для Android 51, в этом случае теперь правильно возвращается значение null в соответствии со спецификацией. |
≤12.1 | 1 | 1.0 | ≤37 |
|---|---|---|---|---|---|---|---|---|---|---|---|
send |
1 | 12 | 1 | 8 | 1.2 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
setAttributionReporting |
125 | 125 | Нет | 111 | Нет | 125 | Нет | 83 | Нет | 27.0 | 125 |
setPrivateToken |
117 | 117 | Нет | 103 | Нет | 117 | Нет | 78 | Нет | 24.0 | 117 |
setRequestHeader |
1 | 12 | 1 | 8 | 1.2 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
status |
1 | 12 | 1 | 8 | 1.2 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 |
statusText |
1 | 12 | 1 | ≤12.1 | 1.2 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
timeout |
29 | 12 | 12 | 1712–16 | 7 | 29 | 14 | 1812–16 | 7 | 2.0 | 4.4 |
timeout_event |
29 | 12 | 12 | 16 | 7 | 29 | 14 | 16 | 7 | 1.0 | 4.4 |
upload |
2 | 12 | 3.5 | ≤12.1 | 4 | 18 | 4 | ≤12.1 | 3 | 1.0 | 4.4 |
withCredentials |
3 | 12 | 3.5Начиная с Firefox 11, использование атрибутаwithCredentials при выполнении синхронных запросов больше не поддерживается. Попытка сделать это вызывает исключение NS_ERROR_DOM_INVALID_ACCESS_ERR. |
12 | 4 | 18 | 4Начиная с Firefox для Android 14, использование атрибутаwithCredentials при выполнении синхронных запросов больше не поддерживается. Попытка сделать это вызывает исключение NS_ERROR_DOM_INVALID_ACCESS_ERR. |
12 | 3.2 | 1.0 | ≤37 |
worker_support |
4 | 12 | 3.5 | 10.6 | 4 | 18 | 4 | 11 | 5 | 1.0 | 4 |
См. также
-
XMLSerializer: Сериализация дерева DOM в XML - Использование XMLHttpRequest
- API Fetch
© 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