JavaScript (i nie tylko) pozwala na opuszczanie nawiasów klamrowych, jeśli masz zamiar wykonać tylko jedno polecenie (tutaj akurat alert).
Ba, nowsze VM javascriptu pozwalają na opuszczanie nawiasów klamrowych w funkcjach (lambda).
No i rozwiązanie problemu:
<script>
r=new XMLHttpRequest()
r.open('GET','gaga',false)
r.send(null)
alert(r.responseText)
//if(r.status == 200)alert(r.responseText)//warto korzystać z status, aby upewnić się, że plik, strona czy cokolwiek tam byś GETował dały nam dobrą odpowiedź, w tym przypadku "OK 200"
</script>
W synchronicznych XHR nie używasz onreadystatechange, bo .. jest synchroniczne - nie trzeba!
http://developer.mozilla.org/en/docs/XMLHttpRequestCytat
Note: You should not provide an onreadystatechange handler for synchronous requests. If you do, versions of Firefox prior to version 3 call the handler anyway. Firefox 3 blocks until the request is completed (as in the example above). Firefox 2 provides the same behavior as long as you don't implement an onreadystatechange handler.