насколько я понял ты просто не кроссбраузерно это все делаешь, сделай различие для браузеров.
вот посмотри на это и подумай где ты ошибся.
try { return new XMLHttpRequest() }
catch(e)
{
try { return new ActiveXObject('Msxml2.XMLHTTP') }
catch(e)
{
try { return new ActiveXObject('Microsoft.XMLHTTP') }
catch(e) { return null; }
}
}