САМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ
×

JS Учебник

JS Главная JS Введение JS Где установить? JS Вывод JS Заявления JS Синтаксис JS Комментарии JS Переменные JS Let JS Const JS Операторы JS Арифметика JS Присваивание JS Типы данных JS Функции JS Объекты JS События JS Строки JS Методы строк JS Поиск строк JS Шаблоны строк JS Числа JS Методы чисел JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Постоянный массив JS Даты JS Формат дат JS Методы получения дат JS Методы набора дат JS Объекты Math JS Случайные числа JS Булевы JS Сравнения JS Оператор If...Else JS Оператор Switch JS Цикл For JS Цикл For In JS Цикл For Of JS Цикл While JS Оператор Break JS Повторяющиеся JS Наборы JS Карты JS Typeof JS Преобразование JS Битовые JS Выражения JS Ошибки JS Область JS Подъемный JS Строгий JS Ключевое слово this JS Стрелки JS Классы JS JSON JS Отладчик JS Стиль JS Практика JS Ошибки JS Эффективность JS Слова

JS Версии

JS Версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/Edge JS История

JS Объекты

Определение объекта Свойства объекта Методы объекта Отображение объекта Доступ объекта Конструкторы объекта Прототипы объекта Повторяющиеся объекты Набор объектов Карты объекта Справочник объектов

JS Функции

Определение функций Параметры функции Обращение к функции Вызов функции Применение функции Закрытие функции

JS Классы

Введение класса Наследование класса Статистический класс

JS Асинхронный

JS Обратный вызов JS Асинхронный JS Обещания JS Асинхронный

JS HTML DOM

DOM Введение DOM Методы DOM Документы DOM Элементы DOM HTML DOM Формы DOM CSS DOM Анимация DOM События DOM Прослушиватель DOM Навигация DOM Узлы DOM Коллекция DOM Список узлов

JS Браузер BOM

JS Window JS Экран JS Расположение JS История JS Навигатор JS Предупреждение JS Синхронизация JS Куки

JS Веб APIы

Веб API Введение Веб API История Веб API Хранилище Веб API Работник Веб API Извлечь Веб API Геолокации

JS AJAX

AJAX Введение AJAX XMLHttp AJAX Запрос на сервер AJAX Ответ с сервера AJAX Файл XML AJAX Файл PHP AJAX Файл ASP AJAX База данных AJAX Приложения AJAX Примеры

JS JSON

JSON Введение JSON Синтаксис JSON или XML JSON Типы данных JSON Парсинг JSON Строки JSON Объекты JSON Массивы JSON PHP JSON HTML JSON JSONP

JS или jQuery

jQuery Селекторы jQuery Элементы jQuery CSS jQuery DOM

JS Примеры

JS Примеры JS HTML DOM JS HTML Ввод JS HTML Объекты JS HTML События JS Браузер JS Редактор JS Упражнения JS Викторина JS Сертификат

JS Справочник

JavaScript Объекты HTML DOM Объекты


JavaScript AJAX Ответ сервера



Свойство onreadystatechange

Свойство readyState имеет статус XMLHttpRequest.

Свойство onreadystatechange определяет функцию, которая будет выполнена, когда readyState изменяется.

Свойство status и statusText свойство имеет статус объекта XMLHttpRequest.

Свойство Описание
onreadystatechange Определяет функцию, которая будет вызываться при изменении свойства readyState
readyState Содержит статус XMLHttpRequest.
0: запрос не инициализирован
1: соединение с сервером установлено
2: запрос получен
3: запрос обработки
4: запрос завершен и ответ готов
status 200: "OK"
403: "Запрещено"
404: "Страница не найдена"
Полный список см. в Справочнике по сообщениям HTTP
statusText Возвращает текст статуса (например, "ОК" или "Не найдено")

Функция onreadystatechange вызывается каждый раз, когда readyState изменения.

Когда readyState 4 и статус 200, ответ готов:

Пример

function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML =
this.responseText;
}
};
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
}
Попробуйте сами »

Событие onreadystatechange срабатывает в четыре раза (1-4), один раз для каждого изменения в readyState.



Использование функции обратного вызова

Функция обратного вызова - это функция, переданная в качестве параметра другой функции.

Если у вас более одной задачи AJAX на веб сайте, вы должны создать одну функцию для выполнения XMLHttpRequest объекта и одну функцию обратного вызова для каждой задачи AJAX.

Вызов функции должен содержать URL адрес и функцию, которую нужно вызвать, когда ответ будет готов.

Пример

loadDoc("url-1", myFunction1);

loadDoc("url-2", myFunction2);

function loadDoc(url, cFunction) {
var xhttp;
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
cFunction(this);
}
};
xhttp.open("GET", url, true);
xhttp.send();
}

function myFunction1(xhttp) {
// здесь выполняется действие
}
function myFunction2(xhttp) {
// здесь выполняется действие
}
Попробуйте сами »

Свойства ответа сервера

Свойство Описание
responseText получить данные ответа в виде строки
responseXML получить данные ответа как данные XML

Методы ответа сервера

Метод Описание
getResponseHeader() Возвращает конкретную информацию заголовка из ресурса сервера
getAllResponseHeaders() Возвращает всю информацию заголовка из ресурса сервера

Свойство responseText

Свойство responseText возвращает ответ сервера в виде строки JavaScript, и вы можете использовать его соответствующим образом:

Пример

document.getElementById("demo").innerHTML = xhttp.responseText;
Попробуйте сами »

Свойство responseXML

Объект XMLHttpRequest имеет встроенный анализатор XML.

Свойство responseXML возвращает ответ сервера в виде объекта XML DOM.

Используя это свойство, вы можете анализировать ответ как объект XML DOM:

Пример

Запросите файл cd_catalog.xml и проанализируйте ответ:

xmlDoc = xhttp.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("ARTIST");
for (i = 0; i < x.length; i++) {
txt += x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;
xhttp.open("GET", "cd_catalog.xml", true);
xhttp.send();
Попробуйте сами »

Вы узнаете гораздо больше о XML DOM в главах этого руководства по DOM.


Метод getAllResponseHeaders()

Метод getAllResponseHeaders() возвращает всю информацию заголовка ответа сервера.

Пример

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML =
this.getAllResponseHeaders();
}
};
Попробуйте сами »

Метод getResponseHeader()

Метод getResponseHeader() возвращает конкретную информацию заголовка из ответа сервера.

Пример

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML =
this.getResponseHeader("Last-Modified");
}
};
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
Попробуйте сами »