Об'єкти XMLHttpRequest
використовуються для взаємодії з серверами. Ти можеш отримати дані за URL без повної перезагрузки сторінки. Це дозволяє веб-сторінці оновити частину вмісту, не перешкоджаючи роботі користувача XMLHttpRequest
часто використовуюється в програмуванні з використанням технології Ajax.
Історія
XMLHttpRequest
був спочатку розроблений компанією Microsoft десь у 1999 році і пізніше прийнятий компаніями Mozilla, Apple та Google. З жовтня 2014 року він був стандартизований в WHATWG, разом з новим методом fetch()
на основі промісів.
Не зважаючи на своє ім'я, XMLHttpRequest
може використовуватись для отримання будь-якого типу даних, не лише XML, і підтримує інші протоколи окрім HTTP (включаючи file
і ftp
).
Конструктор
XMLHttpRequest()
- Конструктор ініціалізує об'єкт XMLHttpRequest. Він має бути викликаний перед використанням будь-яких з його методів.
Властивості
Успадковує властивості XMLHttpRequestEventTarget
і EventTarget
.
XMLHttpRequest.onreadystatechange
EventHandler
викликається щоразу, коли атрибутreadyState
змінюється.XMLHttpRequest.readyState
Read only- Повертає
unsigned short
, the state запиту. XMLHttpRequest.response
Read only- Повертає
ArrayBuffer
,Blob
,Document
, об'єкт JavaScript, або жDOMString
, залежить від значенняXMLHttpRequest.responseType
, що містить тіло відповіді. XMLHttpRequest.responseText
Read only- Повертає
DOMString
, що містить відповідь на запит в якості тексту, абоnull
, якщо запит завершився помилкою або не був надісланим досі. XMLHttpRequest.responseType
- Вказує на тип відповіді.
XMLHttpRequest.responseURL
Read only- Повертає the serialized URL відповіді або ж пустий рядок, якщо URL —
null
. XMLHttpRequest.responseXML
Read only- Повертає
Document
, що містить відповідь на запит абоnull
, якщо запит завершився помилкою, досі не був надісланий, або не може бути розпізнаний, як XML чи HTML. Not available in workers. XMLHttpRequest.status
Read only- Повертає
unsigned short
з статусом відповіді на запит. XMLHttpRequest.statusText
Read only- Повертає
DOMString
, що містить стрічку відповіді, повернену HTTP-сервером. Навідміну відXMLHTTPRequest.status
, що включає цілісний текст відповіді (наприклад, "200 OK
").
Увага: починаючи від специфікації HTTP/2 (8.1.2.4 Поля пседо-заголовку відповіді), HTTP/2 не визначає шляху передачі версії чи reason phrase, що включається в стрічку статусу HTTP/1.1.
XMLHttpRequest.timeout
- Має тип
unsigned long
. Являє собою час у мілісекундах, відведений на запит перед тим, як буде автоматично перерваний. XMLHttpRequestEventTarget.ontimeout
EventHandler
, що викликається щоразу після спливання часу, відведенного на запит.XMLHttpRequest.upload
Read onlyXMLHttpRequestUpload
, що являє собою процес завантаження.XMLHttpRequest.withCredentials
Boolean
, що вказує, чи слід робити запитиAccess-Control
використовуючи такі облікові дані, як файли cookie або заголовки авторизації.
Нестандартні властивості
XMLHttpRequest.channel
Read onlynsIChannel
. Канал, що використовується об'єктом коли виконується запит.XMLHttpRequest.mozAnon
Read only- Логічна змінна. Якщо її значення — істина, запит буде надісланий без кукі та заголовків аутентифікації.
XMLHttpRequest.mozSystem
Read only- Логічна змінна. Якщо її значення — істина, оригінальна політика не буде застосована до запиту.
XMLHttpRequest.mozBackgroundRequest
- Логічна змінна. Вказує чи представляє об'єкт сервіс фонового запиту.
XMLHttpRequest.mozResponseArrayBuffer
Obsolete since Gecko 6 Read only- Є
ArrayBuffer
. Відповідь на запит у вигляді масиву JavaScript. XMLHttpRequest.multipart
Obsolete since Gecko 22- Це особливість Gecko, логічна змінна, що була видалена з Firefox/Gecko 22. Будь ласка, використовуйте натомість Server-Sent Events, Web Sockets, або
responseText
.
Обробники подій
onreadystatechange
підримується у всіх браузерах, як властивість XMLHttpRequest
.
З тих пір у різних браузерах було впроваджено ряд додаткових обробників подій (onload
, onerror
, onprogress
тощо). Вони підтримуються у Firefox. Зокрема, дивіться nsIXMLHttpRequestEventTarget
та Using XMLHttpRequest.
Більш нові браузери, включаючи Firefox, також підтримують прослуховування подій XMLHttpRequest
починаючи від стандарту API addEventListener
в розширені на встановлення властивостей функцій обробника on*
.
Methods
XMLHttpRequest.abort()
- Aborts the request if it has already been sent.
XMLHttpRequest.getAllResponseHeaders()
- Returns all the response headers, separated by CRLF, as a string, or
null
if no response has been received. XMLHttpRequest.getResponseHeader()
- Returns the string containing the text of the specified header, or
null
if either the response has not yet been received or the header doesn't exist in the response. XMLHttpRequest.open()
- Initializes a request. This method is to be used from JavaScript code; to initialize a request from native code, use
openRequest()
instead. XMLHttpRequest.overrideMimeType()
- Overrides the MIME type returned by the server.
XMLHttpRequest.send()
- Sends the request. If the request is asynchronous (which is the default), this method returns as soon as the request is sent.
XMLHttpRequest.setRequestHeader()
- Sets the value of an HTTP request header. You must call
setRequestHeader()
afteropen()
, but beforesend()
.
Non-standard methods
XMLHttpRequest.init()
- Initializes the object for use from C++ code.
XMLHttpRequest.openRequest()
- Initializes a request. This method is to be used from native code; to initialize a request from JavaScript code, use
open()
instead. See the documentation foropen()
. XMLHttpRequest.sendAsBinary()
- A variant of the
send()
method that sends binary data.
Specifications
Specification | Status | Comment |
---|---|---|
XMLHttpRequest | Living Standard | Live standard, latest version |
Browser compatibility
BCD tables only load in the browser
See also
- MDN tutorials covering XMLHttpRequest:
- HTML5 Rocks — New Tricks in XMLHttpRequest2
Chrome scope availability
— how to access XMLHttpRequest from JSM modules etc., which do not have access to DOM