No se si sera por esto pero prueba a poner la creacion del activeobject en un else if ya k tal cual esta si existe el ActiveObject es el eultimo k devuelve. No se si sera por eso, de todos modos veo k en tu codigo no creas el objeto para IE viejos. Te paso el codigo k uso yo, pruebalo a ver k tal.
Cita: if (window.XMLHttpRequest) {
// checks if browser is opera, safari, mozilla, etc.
return new XMLHttpRequest()
}else if (window.ActiveXObject){
// checks if browser is internet explorer
try {
return new ActiveXObject("Msxml2.XMLHTTP")
}catch (e){
// if old version of internet explorer
try{
return new ActiveXObject("Microsoft.XMLHTTP")
}catch (e){
}
}
}else {
return false
}