XMLHttpRequest
является асинхронным. Вам нужно использовать обратный звонок. Если вы не хотите использовать полноценную библиотеку, я рекомендую использовать XHR-оболочку Quirksmode :
function callback(xhr)
{
xmlDoc = xhr.responseXML;
// further XML processing here
}
sendRequest('http://www.google.com/ig/api?weather=london&hl=en', callback);
Если вы абсолютно настаиваете на том, чтобы реализовать это самостоятельно:
// callback is the same as above
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "http://www.google.com/ig/api?weather=london&hl=en", true);
xmlhttp.onreadystatechange = function ()
{
if (xmlhttp.readyState != 4) return;
if (xmlhttp.status != 200 && xmlhttp.status != 304) return;
callback(xmlhttp);
};
xmlhttp.send(null);
Редактировать
Как прокомментировал @ remi :
Я думаю, вы получите исключение междоменного доступа: вы не можете сделать ajax-запрос к другому домену, кроме вашей страницы. нет?
Что (по большей части) правильно. Вам нужно будет использовать прокси на стороне сервера или любой другой API, предоставляемый Google, вместо обычного XHR.