function ax(url, callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.onreadystatechange = function(){
if (this.readyState == 4) {
if (this.status == 200)
callback(this.responseText);
// иначе сетевая ошибка
}
};
xhr.send(null);
}
function getUrl() {
var gUrl = 'http://localhost';
ax(gUrl, function (data) {
console.log(data);
});
}
У вас функция function (data) выполняется хз где и когда, а точнее , когда уже уничтожен экземпляр функции ДайУрл.... Если не хочется особо вникать ни во что, достаточно той переписки, что я скинул. Если хотите данные писать куда-то в переменную, объявите ее на уровень выше своей функции ДайУрл и пушите туда что надо. А вообще совет, почитайте учебник learn.javascript.ru . Кстати на промисах это будет действительно изящнее. Как это сделать поймете прочитав книгу.