Общее представление об AJAX. Часть 2
Отправка запроса GET
Отправка запроса HTTP на сервер с помощью объекта XMLHttpRequest организуется в три этапа.
- Указание URL и команды HTTP для последующего выполнения на сервере.
- Определение функции обратного вызова при поступлении результатов запроса.
- Отправка запроса.
На первом этапе используется метод open() объекта XMLHttpRequest. Но это означает не установление HTTP-соединения, а лишь инициализацию данного объекта. С помощью метода open() указывается URL и команда HTTP для последующего выполнения (как правило, GET или POST).
На втором этапе в свойстве onreadystatechange данного объекта указывается функция обратного вызова. Данная функция вызывается всякий раз, когда изменяется свойство readyState объекта XMLHttpRequest. И наконец, на третьем этапе посылается запрос HTTP с помощью метода send().
Значение 4 свойства readyState в функции обратного вызова означает требуемое состояние объекта, т.е. завершение вызова. В данном случае свойство responseText содержит данные, возвращаемые сервером.
Ниже приведен пример отправки запроса GET на сервер (в данном случае это запрос файла sometext.txt, содержащего простой текст) и последующей реакции на этот вызов.
XMLHttp.open("GET", "sometext.txt", true);
XMLHttp.onreadystatechange = handlerFunction;
XMLHttp.send(null);
function handlerFunction() {
if (XMLHttp.readyState == 4) {
window.alert("Returned data: " + XMLHttp.responseText);
}
}
function getXMLHttp() {
var XMLHttp = null;
if (window.XMLHttpRequest) {
try {
XMLHttp = new XMLHttpRequest();
} catch (e) { }
} else if (window.ActiveXObject) {
try {
XMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) { }
}
}
return XMLHttp;
}
Состояния объекта XMLHttpRequest
В общем, объект XMLHttpRequest может находиьтся в одном из пяти состояний, представленных ниже. В зависимости от способа внедрения данного объекта все эти состояния наступают во время выполнения сценария AJAX. Именно поэтому очень важно всегда запрашивать состояние перед тем, как пытаться получить доступ к остальным данным объекта XMLHttpRequest.
- 0 — не инициализировано
- 1 — загрузка
- 2 — загружено
- 3 — ожидание
- 4 — завершено
Ссылки по теме:
Оставьте свой отзыв