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

JS Учебник

JS Главная JS Введение JS Что? Где? Куда? JS Вывод JS Заявления JS Синтаксис JS Комментарии JS Переменные JS Операторы JS Арифметика JS Присваивания JS Типы данных JS Функции JS Объекты JS События JS Строки JS Методы строк JS Числа JS Методы чисел JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Объекты дат JS Формат дат JS Метод получения дат JS Метод набора дат JS Математические... JS Случайные числа JS Булевы JS Сравнение... JS Заявления if...else JS Заявление switch JS Цикл for JS Цикл while JS Заявление break... JS Преобразование... JS Битовые... JS Регулярные выражения JS Ошибки JS Область JS Подъемный JS Строгий JS Ключевое слово this JS Ключевое слово let JS Константы JS Функция стрелки JS Классы JS Отладчик JS Руководство стиля JS Практика JS Распространенные ошибки JS Эффективность JS Зарезервированные слова JS Версии JS Версия ES5 JS Версия ES6 JS Версия 2016 JS Версия 2017 JS JSON

JS Формы

JS Формы JS Формы API

JS Объекты

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

JS Функции

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

JS Прочее

Классы введение Наследование класса Статические методы... JS Обратный вызов JS Асинхронный JS Обещания JS Асинхронный синтаксис

JS HTML DOM

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

JS Браузера BOM

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

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 Веб API

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

JS или jQuery

jQuery HTML Селекторы jQuery HTML Элементы jQuery CSS Стили jQuery HTML 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();
Попробуйте сами »