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

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

XMLHttpRequest.channel (en-US)Read only
nsIChannel. Канал, що використовується об'єктом коли виконується запит.
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()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