XMLHttpRequest
Об'єкти XMLHttpRequest
використовуються для взаємодії з серверами. Ти можеш отримати дані за URL без повної перезагрузки сторінки. Це дозволяє веб-сторінці оновити частину вмісту, не перешкоджаючи роботі користувача XMLHttpRequest
часто використовуюється в програмуванні з використанням технології Ajax.
Історія
XMLHttpRequest
був спочатку розроблений компанією Microsoft десь у 1999 році і пізніше прийнятий компаніями Mozilla, Apple та Google. З жовтня 2014 року він був стандартизований в WHATWG, разом з новим методом fetch()
(en-US) на основі промісів.
Не зважаючи на своє ім'я, XMLHttpRequest
може використовуватись для отримання будь-якого типу даних, не лише XML, і підтримує інші протоколи окрім HTTP (включаючи file
і ftp
).
Конструктор
XMLHttpRequest()
(en-US)- Конструктор ініціалізує об'єкт XMLHttpRequest. Він має бути викликаний перед використанням будь-яких з його методів.
Властивості
Успадковує властивості XMLHttpRequestEventTarget
(en-US) і EventTarget
(en-US).
XMLHttpRequest.onreadystatechange
(en-US)EventHandler
(en-US) викликається щоразу, коли атрибутreadyState
змінюється.XMLHttpRequest.readyState
(en-US) Read only- Повертає
unsigned short
, the state запиту. XMLHttpRequest.response
(en-US) Read only- Повертає
ArrayBuffer
(en-US),Blob
,Document
, об'єкт JavaScript, або жDOMString
, залежить від значенняXMLHttpRequest.responseType
(en-US), що містить тіло відповіді. XMLHttpRequest.responseText
(en-US) Read only- Повертає
DOMString
, що містить відповідь на запит в якості тексту, абоnull
, якщо запит завершився помилкою або не був надісланим досі. XMLHttpRequest.responseType
(en-US)- Вказує на тип відповіді.
XMLHttpRequest.responseURL
(en-US) Read only- Повертає the serialized URL відповіді або ж пустий рядок, якщо URL —
null
. XMLHttpRequest.responseXML
(en-US) Read only- Повертає
Document
, що містить відповідь на запит абоnull
, якщо запит завершився помилкою, досі не був надісланий, або не може бути розпізнаний, як XML чи HTML. Not available in workers. XMLHttpRequest.status
(en-US) Read only- Повертає
unsigned short
з статусом відповіді на запит. XMLHttpRequest.statusText
(en-US) Read only- Повертає
DOMString
, що містить стрічку відповіді, повернену HTTP-сервером. Навідміну відXMLHTTPRequest.status
(en-US), що включає цілісний текст відповіді (наприклад, "200 OK
").
Увага: починаючи від специфікації HTTP/2 (8.1.2.4 Поля пседо-заголовку відповіді), HTTP/2 не визначає шляху передачі версії чи reason phrase, що включається в стрічку статусу HTTP/1.1.
XMLHttpRequest.timeout
(en-US)- Має тип
unsigned long
. Являє собою час у мілісекундах, відведений на запит перед тим, як буде автоматично перерваний. XMLHttpRequestEventTarget.ontimeout
EventHandler
(en-US), що викликається щоразу після спливання часу, відведенного на запит.XMLHttpRequest.upload
(en-US) Read onlyXMLHttpRequestUpload
, що являє собою процес завантаження.XMLHttpRequest.withCredentials
(en-US)Boolean
(en-US), що вказує, чи слід робити запитиAccess-Control
використовуючи такі облікові дані, як файли cookie або заголовки авторизації.
Нестандартні властивості
XMLHttpRequest.channel
(en-US)Read onlynsIChannel
. Канал, що використовується об'єктом коли виконується запит.XMLHttpRequest.mozAnon
(en-US)Read only- Логічна змінна. Якщо її значення — істина, запит буде надісланий без кукі та заголовків аутентифікації.
XMLHttpRequest.mozSystem
(en-US)Read only- Логічна змінна. Якщо її значення — істина, оригінальна політика не буде застосована до запиту.
XMLHttpRequest.mozBackgroundRequest
(en-US)- Логічна змінна. Вказує чи представляє об'єкт сервіс фонового запиту.
XMLHttpRequest.mozResponseArrayBuffer
(en-US) Obsolete since Gecko 6 Read only- Є
ArrayBuffer
. Відповідь на запит у вигляді масиву JavaScript. XMLHttpRequest.multipart
(en-US)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()
(en-US)- Aborts the request if it has already been sent.
XMLHttpRequest.getAllResponseHeaders()
(en-US)- Returns all the response headers, separated by CRLF, as a string, or
null
if no response has been received. XMLHttpRequest.getResponseHeader()
(en-US)- 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()
(en-US)- Initializes a request. This method is to be used from JavaScript code; to initialize a request from native code, use
openRequest()
instead. XMLHttpRequest.overrideMimeType()
(en-US)- Overrides the MIME type returned by the server.
XMLHttpRequest.send()
(en-US)- Sends the request. If the request is asynchronous (which is the default), this method returns as soon as the request is sent.
XMLHttpRequest.setRequestHeader()
(en-US)- 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