Если я нахожусь в функции onreadystatechange моего XHR, я легко могу сделать document.title = xhr.responseText
, но если я заставлю функцию возвращать responseText, я не могу установить переменную, равную внешней оболочке моего XHR, чтобы сделать ее равной ответу; Есть ли способ сделать это?
Моя оболочка:
ajax = function(url, cb)
{
xhr = (window.XMLHttpRequest)
? new XMLHttpRequest()
: new ActiveXObject('Microsoft.XMLHTTP');
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
cb(xhr.responseText);
};
}
xhr.open('get', url, true);
xhr.send();
};
Теперь, если бы я сделал что-то вроде:
ajax('bacon.txt', function(_)
{
document.title = _;
}
работает абсолютно идеально; document.title фактически становится responseText при вызове bacon.txt. Однако, если я попытаюсь реализовать это следующим образом:
document.title = ajax('bacon.txt', function(_)
{
return _;
}
нет такой удачи. Кто-нибудь может уточнить, почему это так?
};