Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2010, 05:30
meterio80
 
Fecha de Ingreso: octubre-2010
Mensajes: 1
Antigüedad: 13 años, 6 meses
Puntos: 0
Ajax no funciona con firefox, si con explorer

Hola a todos! No sé si podréis ayudarme, porque me estoy volviendo loco a probar cosas. Tengo el código Ajax implementado en mi aplicación, que lo que hace es hacer 3 llamadas Ajax consecutivas anidadas y cada una de las cuales lo que hace es redirigir a una página ASP, es decir:
"PAGINA1.ASP se redirije mediante Ajax a PAGINA 2.ASP y esta a su vez se redirige a PAGINA3.ASP mediante Ajax. Pues bien, en Explorer funciona correctamente, y en Firefox, cuando introduzco un 'alert' en el código Ajax, funciona, pero sino no funciona. Dejo el código a continuación. He probado de todo, tanto a asignar el método "onreadystatechange=handleHttpResponse()", como a crear un objeto independiente "XMLHttpRequest" por cada llamada de Ajax que realizo, y nada de nada de nada.
Cuando hago "http.onreadystatechange = function ()", lo que hace 'function()' es otra llamada a Ajax que a su vez hace otro "http.onreadystatechange = function ()". Gracias por vuestra atención y espero vuestros comentarios a ver si me sacáis de este cuello de botella, porque me estoy volviendo loco. Aquí dejo el código. Un saludo!! :


function getHTTPObject()
{
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 envio_ajax(str_url, tipo, funcion_interna)
{
/*
tipo puede ser o GET o POST
*/
// Creando la variable dentro de envio_ajax ésta es local y puede llamarse cuantas veces se quiera
// a la función que en cada una el objeto xmlhttp será independiente.
var http=getHTTPObject();

var str_ajax;

http.open(tipo, str_url, true);
http.onreadystatechange = function ()
{
if (http.readyState == 4)
{
str_ajax = new String(http.responseText);
if (funcion_interna!=null) {
funcion_interna.apply(null, [str_ajax]);
}
}
}
http.send(null);
}