prueba a estructurarlo, la creación del objeto por un lado y llamada por otro
  Cita:  <script> 
function ajax(){ 
   var req; 
   if (window.XMLHttpRequest) { 
      req = new XMLHttpRequest(); 
   } else { 
         req = new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
}
 
 
function Cargar(url, target){ 
var req = ajax();
var objetivo = target;
 req.open("GET", url, true); 
req.send(""); 
 
      req.onreadystatechange = function() 
      {
if (req.readyState !=4) {
document.getElementById(objetivo).innerHTML = "Cargando<br>TB podemos poner una IMG de cargando..."; 
 }
 
       else  if (req.readyState == 4) 
         { 
            if (req.status == 200) 
            { 
               document.getElementById(objetivo).innerHTML = req.responseText; 
            } 
            else 
            { 
               document.getElementById(objetivo).innerHTML = "Error"; 
            } 
         } 
      } 
 
} 
</script>
    en caso que aún no funcione, usa la consola de errores de ff o de chrome