XMLHttpRequest

Об'єкти 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 only
XMLHttpRequestUpload, що являє собою процес завантаження.
XMLHttpRequest.withCredentials
Boolean, що вказує, чи слід робити запити Access-Control використовуючи такі облікові дані, як файли cookie або заголовки авторизації.

Нестандартні властивості

XMLHttpRequest.channelRead only
nsIChannel. Канал, що використовується об'єктом коли виконується запит.
XMLHttpRequest.mozAnonRead only
Логічна змінна. Якщо її значення — істина, запит буде надісланий без кукі та заголовків аутентифікації.
XMLHttpRequest.mozSystemRead only
Логічна змінна. Якщо її значення — істина, оригінальна політика не буде застосована до запиту.
XMLHttpRequest.mozBackgroundRequest
Логічна змінна. Вказує чи представляє об'єкт сервіс фонового запиту.
XMLHttpRequest.mozResponseArrayBuffer Obsolete since Gecko 6 Read only
Є ArrayBuffer. Відповідь на запит у вигляді масиву JavaScript.
XMLHttpRequest.multipartObsolete 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()after open(), but before send().

Non-standard methods

XMLHttpRequest.init()
Initializes the object for use from C++ code.
Warning: This method must not be called from JavaScript.
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 for open().
XMLHttpRequest.sendAsBinary() This deprecated API should no longer be used, but will probably still work.
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