--- title: XMLHttpRequest slug: Web/API/XMLHttpRequest tags: - AJAX - API - HTTP - Interface - NeedsTranslation - Reference - TopicStub - Web - XHR translation_of: Web/API/XMLHttpRequest ---
{{APIRef("XMLHttpRequest")}}

Об'єкти XMLHttpRequest використовуються для взаємодії з серверами. Ти можеш отримати дані за URL без повної перезагрузки сторінки. Це дозволяє веб-сторінці оновити частину вмісту, не перешкоджаючи роботі користувача XMLHttpRequest часто використовуюється в програмуванні з використанням технології Ajax.

{{InheritanceDiagram}}

Історія

XMLHttpRequest був спочатку розроблений компанією Microsoft десь у 1999 році і пізніше прийнятий компаніями Mozilla, Apple та Google. З жовтня 2014 року він був стандартизований в WHATWG, разом з новим методом {{domxref("WindowOrWorkerGlobalScope.fetch()", "fetch()")}} на основі промісів.

Не зважаючи на своє ім'я, XMLHttpRequest може використовуватись для отримання будь-якого типу даних, не лише XML, і підтримує інші протоколи окрім HTTP (включаючи file і ftp).

Конструктор

{{domxref("XMLHttpRequest.XMLHttpRequest", "XMLHttpRequest()")}}
Конструктор ініціалізує об'єкт XMLHttpRequest. Він має бути викликаний перед використанням будь-яких з його методів.

Властивості

Успадковує властивості {{domxref("XMLHttpRequestEventTarget")}} і {{domxref("EventTarget")}}.

{{domxref("XMLHttpRequest.onreadystatechange")}}
{{domxref("EventHandler")}} викликається щоразу, коли атрибут readyState змінюється.
{{domxref("XMLHttpRequest.readyState")}} {{readonlyinline}}
Повертає unsigned short, the state запиту.
{{domxref("XMLHttpRequest.response")}} {{readonlyinline}}
Повертає {{domxref("ArrayBuffer")}}, {{domxref("Blob")}}, {{domxref("Document")}}, об'єкт JavaScript, або ж {{domxref("DOMString")}}, залежить від значення {{domxref("XMLHttpRequest.responseType")}}, що містить тіло відповіді.
{{domxref("XMLHttpRequest.responseText")}} {{readonlyinline}}
Повертає {{domxref("DOMString")}}, що містить відповідь на запит в якості тексту, або null, якщо запит завершився помилкою або не був надісланим досі.
{{domxref("XMLHttpRequest.responseType")}}
Вказує на тип відповіді.
{{domxref("XMLHttpRequest.responseURL")}} {{readonlyinline}}
Повертає the serialized URL відповіді або ж пустий рядок, якщо URL — null.
{{domxref("XMLHttpRequest.responseXML")}} {{readonlyinline}}
Повертає {{domxref("Document")}}, що містить відповідь на запит або null, якщо запит завершився помилкою, досі не був надісланий, або не може бути розпізнаний, як XML чи HTML. Not available in workers.
{{domxref("XMLHttpRequest.status")}} {{readonlyinline}}
Повертає unsigned short з статусом відповіді на запит.
{{domxref("XMLHttpRequest.statusText")}} {{readonlyinline}
Повертає {{domxref("DOMString")}}, що містить стрічку відповіді, повернену HTTP-сервером. Навідміну від {{domxref("XMLHTTPRequest.status")}}, що включає цілісний текст відповіді (наприклад, "200 OK").

Увага: починаючи від специфікації HTTP/2 (8.1.2.4 Поля пседо-заголовку відповіді), HTTP/2 не визначає шляху передачі версії чи reason phrase, що включається в стрічку статусу HTTP/1.1.

{{domxref("XMLHttpRequest.timeout")}}
Має тип unsigned long. Являє собою час у мілісекундах, відведений на запит перед тим, як буде автоматично перерваний.
{{domxref("XMLHttpRequestEventTarget.ontimeout")}}
{{domxref("EventHandler")}}, що викликається щоразу після спливання часу, відведенного на запит. {{gecko_minversion_inline("12.0")}}
{{domxref("XMLHttpRequest.upload")}} {{readonlyinline}}
{{domxref("XMLHttpRequestUpload")}}, що являє собою процес завантаження.
{{domxref("XMLHttpRequest.withCredentials")}}
{{domxref("Boolean")}}, що вказує, чи слід робити запити Access-Control використовуючи такі облікові дані, як файли cookie або заголовки авторизації.

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

{{domxref("XMLHttpRequest.channel")}}{{ReadOnlyInline}}
{{Interface("nsIChannel")}}. Канал, що використовується об'єктом коли виконується запит.
{{domxref("XMLHttpRequest.mozAnon")}}{{ReadOnlyInline}}
Логічна змінна. Якщо її значення — істина, запит буде надісланий без кукі та заголовків аутентифікації.
{{domxref("XMLHttpRequest.mozSystem")}}{{ReadOnlyInline}}
Логічна змінна. Якщо її значення — істина, оригінальна політика не буде застосована до запиту.
{{domxref("XMLHttpRequest.mozBackgroundRequest")}}
Логічна змінна. Вказує чи представляє об'єкт сервіс фонового запиту.
{{domxref("XMLHttpRequest.mozResponseArrayBuffer")}}{{gecko_minversion_inline("2.0")}} {{obsolete_inline("6")}} {{ReadOnlyInline}}
Є ArrayBuffer. Відповідь на запит у вигляді масиву JavaScript.
{{domxref("XMLHttpRequest.multipart")}}{{obsolete_inline("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

{{domxref("XMLHttpRequest.abort()")}}
Aborts the request if it has already been sent.
{{domxref("XMLHttpRequest.getAllResponseHeaders()")}}
Returns all the response headers, separated by CRLF, as a string, or null if no response has been received.
{{domxref("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.
{{domxref("XMLHttpRequest.open()")}}
Initializes a request. This method is to be used from JavaScript code; to initialize a request from native code, use openRequest() instead.
{{domxref("XMLHttpRequest.overrideMimeType()")}}
Overrides the MIME type returned by the server.
{{domxref("XMLHttpRequest.send()")}}
Sends the request. If the request is asynchronous (which is the default), this method returns as soon as the request is sent.
{{domxref("XMLHttpRequest.setRequestHeader()")}}
Sets the value of an HTTP request header. You must call setRequestHeader()after open(), but before send().

Non-standard methods

{{domxref("XMLHttpRequest.init()")}}
Initializes the object for use from C++ code.
Warning: This method must not be called from JavaScript.
{{domxref("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().
{{domxref("XMLHttpRequest.sendAsBinary()")}}{{deprecated_inline()}}
A variant of the send() method that sends binary data.

Specifications

Specification Status Comment
{{SpecName('XMLHttpRequest')}} {{Spec2('XMLHttpRequest')}} Live standard, latest version

Browser compatibility

{{Compat("api.XMLHttpRequest")}}

See also