Духовность™
Продвинутый новичок
обясните поведение аякс в JS
Есть тривиальный пример. Функция, которую я хотел адаптировать как универсальный механизм для получения объекта ответа. Хренушки. В упор не понимаю почему, но в объекте XMLHttpRequest не сохраняется результат выполнения запроса. В комментариях в коде всё написано:
собственно, хотел возвращать этот объект req XMLHttpRequest из этой функции и брать содержимое XML через req.responseXML. А он, как видно из кода, в null.
Я так понимаю, это как-то связано с синхронностью/ассинхроностью?
Есть тривиальный пример. Функция, которую я хотел адаптировать как универсальный механизм для получения объекта ответа. Хренушки. В упор не понимаю почему, но в объекте XMLHttpRequest не сохраняется результат выполнения запроса. В комментариях в коде всё написано:
PHP:
// отсылает GET-запрос по url
function ajax_send(url)
{
// создаем объект XMLHTTPRequest
// это обычная универсальная функция, коих в сети полно
var req = ajax_createRequestObject();
req.onreadystatechange = function()
{
if (req.readyState == 4)
{
if (req.status == 200)
{
// ВОТ ТУТ req.responseText возвращает XML в виде строки
alert(req.responseText);
// или, например, объект XmlDomDocument
alert(req.responseXML);
}
else
{
alert("Error XMLHttpRequest");
return false;
}
}
}
req.open('GET', url, true);
req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
req.send(null);
// А ВОТ ТУТ req.responseText - пустая строка
alert(req.responseText)
// а тут null - объекта нет
alert(req.responseXML);
}
Я так понимаю, это как-то связано с синхронностью/ассинхроностью?