Проблема в том, что этот код
document.getElementById("testfield").innerHTML = word; //This doesn't work
выполняется до вашего обратного вызова xhr.В результате слово undefined
xmlhttp.send();
отправляет ваш запрос ajax, а затем немедленно возвращается.Затем ваш код переходит к
document.getElementById("testfield").innerHTML = word;
, где слово все еще равно undefined
, затем, через некоторое время, ваш запрос ajax завершается, ваш обратный вызов вызывается, и слово слишком поздно устанавливается для результатаволновало.