Estuve mirando algun ejemplo para realizar una descarga de contenidos via AJAX. Esta tenia que descargar unos contenidos a un web principal (lo pasava por POST). Inicialmente se descargava los contenidos del menu home a partir de la funcion implementada y, cuando clicko un menu diferente, llamo a la misma funcion pero para descargar otro tipo de contenido (el correspondiente al menú clickado). Tuve problemas-> cuando se ejecutava por primera vez la funcion AJAX, esta tiraba correctamente pero parava la ejecucion del resto de código javascript que tengo, que es mucho. Despues de probar y probar encontre la solucion, quite la llamada .send(null) que, segun he leido por este foro, es obligatorio de poner, si no , el servidor no te devuelve la llamada creada. Pues bien, quite esta linea de código y cual fue mi sorpresa que, se descargava todo el contenido que pedia y mi código js me seguia ejecutando hasta el final. Aqui teneis el código:
Código:
Ante esto, alguien puede explicarme pq se decia que es obligatorio este método cuando, por experiencia mia se ha demostrado que no??? function objetus() {
var objetus;
try {
objetus = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
objetus= new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
objetus= false;
}
}
if (!objetus && typeof XMLHttpRequest!='undefined') {
objetus = new XMLHttpRequest();
}
return objetus;
}
function menu_ajax(adresa, menuId, menu)
{
document.getElementById("loading").style.visibility='visible';
document.getElementById("loading").innerHTML = menu+"<br>Carregant...";
_objetus=objetus(); //crear objeto
url=adresa+"?al=1"; //URL
_objetus.open("POST",url,true); //abrir procesador
_objetus.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); //cabeceras POST
_objetus.setRequestHeader('Content-Type','text/html; charset=iso-8859-1');
_objetus.send('&al=1' ); //enviar variables
_objetus.onreadystatechange=function() { //funcion controlador
if(_objetus.readyState==4)
{
if(_objetus.status==200)
{
document.getElementById(menuId).innerHTML = _objetus.responseText;
document.getElementById("loading").style.visibility='hidden';
document.getElementById("loading").innerHTML = "";
}
}
}
//_objetus.send(null);
}

