When you are testing in IE, you could really use MSVS, it has a free version. The free version has limited debugging capabilities less templates / documentation. But, at least, you could have a debugger for JavaScript, and that would help you find, not only this, but other JavaScript related problems in IE. http://www.microsoft.com/express/Web/
From what I can tell, there are strange places in your code. For example,
returning alert() doesn't make sense because alert() returns undefined. You don't really have to call request.send(null), you could do request.send(), but if you wanted to encode name-value pairs, this function is the right place to do it (when sending POST requests). http://www.w3.org/TR/XMLHttpRequest/#the-send-method http://msdn.microsoft.com/en-us/library/ms536736%28v=vs.85%29.aspx In your example, you are sending a GET request, therefore, you don't need any arguments. Also, there may be subtle differences in how browsers will treat non-significant white space in XML, so response.firstChild.firstChild.nodeValue may be just a couple of blanks, depending on how your XML looks like, or it may give you an error, if the response.firstChild is a text node. delete request; - is a useless line, JavaScript is a managed runtime, so any local variable will seize to exist once the function returns, unless it was referenced outside the function's scope (in which case "deleting" it will have no effect). It is different, from, for example, C++ where delete would free memory. In JavaScript it is used to remove dynamic references from where they existed (essentially, someObject.someProperty = undefined is the same as delete someObject.someProperty). HTH.