Ответ сервера в AJAX
- Предыдущая страница Запрос AJAX
- Следующая страница Файл XML AJAX
Свойство onreadystatechange
readyState
Свойство сохраняет состояние XMLHttpRequest.
onreadystatechange
определяют функцию, которая выполняется при изменении свойства readyState.
status
Свойства statusText
Свойство содержит состояние объекта XMLHttpRequest.
Свойства | Описание |
---|---|
onreadystatechange | Определяет функцию, которая вызывается при изменении свойства readyState. |
readyState |
Сохраняет состояние XMLHttpRequest.
|
status |
Для полного списка, пожалуйста, посетите Референс-руководство по HTTP-сообщениям |
statusText | возвращает статус текста (например, "OK" или "Не найдено") |
каждый раз readyState изменяется, вызывается функция onreadystatechange.
когда readyState
для 4
,status
для 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
вызывается пять раз (0-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
Атрибут responseText возвращает ответ сервера в виде строки JavaScript, поэтому вы можете использовать его так:
Пример
document.getElementById("demo").innerHTML = xhttp.responseText;
Атрибут responseXML
Объект XML HttpRequest имеет встроенный XML-анализатор.
ResponseXML
свойства возвращает серверный ответ в виде объекта XML DOM.
Используя этот атрибут, вы можете получить ответАнализироватьДля XML DOM объекта:
Пример
Запрос на файл music_list.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", "music_list.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();
- Предыдущая страница Запрос AJAX
- Следующая страница Файл XML AJAX