XML HttpRequest
Все современные браузеры имеют встроенный объект XMLHttpRequest для запроса данных с сервера.
Объект XMLHttpRequest
Объект XMLHttpRequest можно использовать для запроса данных с веб-сервера.
Объект XMLHttpRequest — мечта разработчиков , потому что вы можете:
- Обновите веб-страницу без перезагрузки страницы
- Запросить данные с сервера - после загрузки страницы
- Получить данные с сервера - после загрузки страницы
- Отправка данных на сервер - в фоновом режиме
Пример запроса XMLHttp
Когда вы вводите символ в поле ввода ниже, XMLHttpRequest отправляется на сервер, и возвращаются некоторые предложения имени (с сервера):
Пример
Приведенный выше пример объясняется в главах этого руководства, посвященных AJAX.
Отправка XMLHttpRequest
Обычный синтаксис JavaScript для использования объекта XMLHttpRequest выглядит примерно так:
Пример
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Typical action to be performed when the document is ready:
document.getElementById("demo").innerHTML = xhttp.responseText;
}
};
xhttp.open("GET", "filename", true);
xhttp.send();
Объяснение примера
Первая строка в приведенном выше примере создает объект XMLHttpRequest :
var xhttp = new XMLHttpRequest();
Свойство onreadystatechange указывает функцию, которая будет выполняться каждый раз при изменении состояния объекта XMLHttpRequest:
xhttp.onreadystatechange = function()
Когда свойство readyState равно 4, а свойство состояния равно 200, ответ готов:
if (this.readyState == 4 && this.status == 200)
Свойство responseText возвращает ответ сервера в виде текстовой строки.
Текстовая строка может использоваться для обновления веб-страницы:
document.getElementById("demo").innerHTML = xhttp.responseText;
Вы узнаете намного больше об объекте XMLHttpRequest в главах AJAX этого руководства.
Старые версии Internet Explorer (IE5 и IE6)
Старые версии Internet Explorer (IE5 и IE6) не поддерживают объект XMLHttpRequest.
Для обработки IE5 и IE6 проверьте, поддерживает ли браузер объект XMLHttpRequest, или создайте ActiveXObject:
Пример
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
}
else {
// code for old IE browsers
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}