English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Объект XMLHttpRequest позволяет вам определить функцию для обработки ответа.
Функция ответа onreadystatechange определена в атрибутах объекта XMLHttpRequest.
httpRequest.onreadystatechange = function() { if (this.readyState === 4 && this.status === 200) { document.getElementById("output").innerHTML = this.responseText; } };Проверьте, посмотрите‹/›
Атрибут onreadystatechange определяет функцию, которая будет выполняться при изменении readyState.
Атрибут readyState сохраняет состояние объекта XMLHttpRequest.
Атрибут status сохраняет состояние кода объекта XMLHttpRequest.
Атрибут statusText сохраняет текст состояния объекта XMLHttpRequest.
Атрибут | Описание |
---|---|
onreadystatechange | Определяет функцию, которая вызывается при изменении свойства readyState |
readyState | Удерживать состояние XMLHttpRequest: 0: Запрос не инициализирован 1: Установлено соединение с сервером 2: Получен запрос 3: Обработка запроса 4: Запрос завершен и ответ готов |
status | Возвращает номер состояния запроса: 200: "OK" 403: "Forbidden" 404: "Not Found" Для получения полного списка, пожалуйста, посетитеСправочник по HTTP-��态 кодам |
statusText | Возвращает текст состояния запроса (например, "OK" или "Not Found") |
В таблице ниже перечислены атрибуты ответа сервера:
Атрибут | Описание |
---|---|
responseText | Возвращает данные ответа в виде строки |
responseXML | Возвращает данные ответа в виде XML |
Атрибут responseText возвращает ответ сервера в виде строки JavaScript.
document.getElementById("output").innerHTML = httpRequest.responseText;Проверьте, посмотрите‹/›
Атрибут responseXML возвращает ответ сервера в виде объекта XMLDocument.
Вы можете использовать функции DOM JavaScript для遍ения объекта XMLDocument.
Ниже приведен пример файла запросаajax_test.xmlи анализировать ответ:
xmlDoc = httpRequest.responseXML; tag = xmlDoc.getElementsByTagName("author"); for (let i = 0; i < tag.length; i++) { txt += tag[i].childNodes[0].nodeValue + "<br>"; } httpRequest.open("GET", "ajax_test.xml", true); httpRequest.send();Проверьте, посмотрите‹/›
В таблице ниже перечислены методы ответа сервера:
Метод | Описание |
---|---|
getAllResponseHeaders() | возвращает информацию заголовка |
getResponseHeader() | возвращает специфическую информацию заголовков |
Метод getAllResponseHeaders() возвращает все заголовки информации из ответа сервера.
var httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = function() { if (this.readyState === 4 && this.status === 200) { document.getElementById("output").innerHTML = this.getAllResponseHeaders(); } };Проверьте, посмотрите‹/›
Метод getResponseHeader() возвращает определенную информацию заголовка из ответа сервера.
var httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = function() { if (this.readyState === 4 && this.status === 200) { document.getElementById("output").innerHTML = this.getResponseHeader("Server"); } };Проверьте, посмотрите‹/›
Если на сайте есть несколько задач AJAX, то следует создать две функции:
Функция для выполнения объекта XMLHttpRequest
У каждой задачи AJAX есть обратная функция
Вызов функции должен содержать URL и функцию, которая будет вызываться после готовности ответа.
fetchDoc("url-1", myFunc1); fetchDoc("url-2", myFunc2); fetchDoc("url-3", myFunc3); function fetchDoc(url, callback) { var httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = function() { if (this.readyState === 4 && this.status === 200) { callback(this); } }; httpRequest.open("GET", url, true); httpRequest.send(); } function myFunc1(httpRequest) { // действие происходит здесь } function myFunc2(httpRequest) { // действие происходит здесь } function myFunc3(httpRequest) { // действие происходит здесь }Проверьте, посмотрите‹/›
Обратная функция вызывается в качестве параметра переданной другой функции.