AJAX - объект XMLHttpRequest
Краеугольным камнем AJAX является объект XMLHttpRequest.
Объект XMLHttpRequest
Все современные браузеры поддерживают объект XMLHttpRequest.
Объект XMLHttpRequest может использоваться для обмена данными с веб-сервером за кулисами. Это означает, что можно обновить части веб-страницы без перезагрузки всей страницы.
Создание объекта XMLHttpRequest
Все современные браузеры (Chrome, Firefox, IE7 +, EDGE, Safari, Opera) имеют встроенный объект XMLHttpRequest.
Синтаксис для создания объекта XMLHttpRequest:
variable = new XMLHttpRequest();
Пример
var xhttp = new XMLHttpRequest();
Доступ через домены
По соображениям безопасности современные обозреватели не разрешают доступ через домены.
Это означает, что веб-страница и XML-файл, который он пытается загрузить, должны располагаться на одном сервере.
Примеры на html5css.ru все открытые XML-файлы, расположенные в домене html5css.ru.
Если вы хотите использовать приведенный выше пример на одной из ваших собственных веб-страниц, загружаемые XML-файлы должны располагаться на собственном сервере.
Старые браузеры (IE5 и IE6)
В старых версиях Internet Explorer (5/6) вместо объекта XMLHttpRequest используется объект ActiveX:
variable = new ActiveXObject("Microsoft.XMLHTTP");
Чтобы обработать IE5 и IE6, проверьте, поддерживает ли обозреватель объект XMLHttpRequest, или создайте объект ActiveX:
Пример
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
}
else {
// code for old IE browsers
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
Методы объекта XMLHttpRequest
Метод | Описание |
---|---|
new XMLHttpRequest() | Создает новый объект XMLHttpRequest |
abort() | Отмена текущего запроса |
getAllResponseHeaders() | Возвращает сведения о заголовке |
getResponseHeader() | Возвращает сведения о конкретном заголовке |
open(method, url, async, user, psw) | Задает запрос метод: тип запроса GET или POST URL-адрес: расположение файла Async: true (асинхронный) или false (синхронный) пользователь: необязательное имя пользователя PSW: необязательный пароль |
send() | Отправляет запрос на сервер Используется для запросов GET |
send(string) | Отправляет запрос на сервер. Используется для запросов POST |
setRequestHeader() | Добавление пары "метка/значение" в заголовок для отправки |
XMLHttpRequest Свойства объекта
Свойство | Описание |
---|---|
onreadystatechange | Определяет функцию, вызываемую при изменении свойства readyState |
readyState | Содержит статус XMLHttpRequest. 0: запрос не инициализирован 1: установленное соединение сервера 2: запрос получен 3: обработка запроса 4: запрос готов и ответ готов |
responseText | Возвращает данные ответа в виде строки |
responseXML | Возвращает данные ответа в виде XML-данных |
status | Возвращает статус-номер запроса 200: "OK" 403: "запрещено" 404: "не найдено" Для полного списка перейдите к ссылке http-сообщения |
statusText | Возвращает текст состояния (например, "OK" или "не найден") |