Это потому, что Ajax является асинхронным, и result
еще не установлен, когда вы делаете это (плюс var
делает его локальным для функции в любом случае, вам придется удалить это).
Лучше всего было бы переместить строку innerHTML
в обратный вызов readystatechange.
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.getElementById('span').innerHTML = ajaxRequest.responseText;;
}