Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Ajax no responde,se queda en estado readyState 1

Estas en el tema de Ajax no responde,se queda en estado readyState 1 en el foro de Frameworks JS en Foros del Web. Hola estoy haciendo una página web en la que haya un menú fijo y todo lo demás sea cargado por Ajax. El archivo php se ...
  #1 (permalink)  
Antiguo 06/10/2010, 11:13
 
Fecha de Ingreso: septiembre-2010
Mensajes: 43
Antigüedad: 14 años, 2 meses
Puntos: 0
Ajax no responde,se queda en estado readyState 1

Hola estoy haciendo una página web en la que haya un menú fijo y todo lo demás sea cargado por Ajax.
El archivo php se encargará de mostrar el menú fijo si no le pasa por método GET nada,pero en el caso que se le pase algo,se cargará por ajax en un Div.
El archivo functions.js se encarga de realizar todas las funciones Javascript necesarias,en este caso son tres:
  1. Generar el objeto XHR: Funcion objetoAjax()
  1. Asignarle un nombre al objeto y generar:Funcion menuhorizontal()
  1. Devolver la respuesta del servidor y esa respuesta meterlo en un div.
Ahora os dejo el archivo functions.js,a ver si podeis ayudarme,que yo creo que es donde está el problema y no en el archivo PHP.
functions.js:
Cita:

function objetoAjax() {
var xmlhttp = false;
try {
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (E) {
try {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (Err) {
xmlhttp=false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
};


function menuhorizontal(direccion,target1) {
var ajax = objetoAjax();
ajax.open("GET",direccion);
ajax.send(null);
ajax.onreadystatechange = respuesta(target1,ajax);
};

function respuesta(targetcontent,ajax) {
targetcontent = document.getElementById(targetcontent);
if (ajax.readyState==1) {
content.innerHTML="Cargando...";
} else if (ajax.readyState==2) {
content.innerHTML="Estado 2...";
} else if (ajax.readyState==3) {
content.innerHTML="Estado 3...";
} else if (ajax.readyState==4) {
content.innerHTML=ajax.responseText;
};
};
Como podeis ver,por metodo GET al servidor,en que Div será cargado todo el contenido de Ajax.
El problema no puede estar en el archivo PHP ya que si abro una pagina con la direccion que se le pasa a menuhorizontal,todo me funciona pero cuando lo hago con Ajax no hace nada.
Lo unico que hace es quedarse todo el rato en cargando...


¿Como puedo solucionarlo,donde puede estar el fallo?
Gracias
  #2 (permalink)  
Antiguo 06/10/2010, 18:06
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 15 años
Puntos: 7
Respuesta: Ajax no responde,se queda en estado readyState 1

y donde está el php? en direccion cómo lo estas pasando? eso no tiene parametros ?

Me parece que ahí esta el problema

Sino prueba esto:

ajax.open("GET",direccion);
ajax.onreadystatechange = respuesta(target1,ajax);
ajax.send(null);

Última edición por egepe; 06/10/2010 a las 18:12
  #3 (permalink)  
Antiguo 07/10/2010, 10:56
 
Fecha de Ingreso: septiembre-2010
Mensajes: 43
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Ajax no responde,se queda en estado readyState 1

Gracias por responder,el php no lo he puesto porque no he creido necesario ya que si abro la pagina sin utilizar AJAX,se abre el archivo PHP correctamente,el problema tiene que estar en el código AJAX creo yo...
direccion lo paso como parametro en la función menuhorizontal:
Cita:
<li onclick='menuhorizontal("indexnuevo.php?side=insid e&func=settings&target=content");'>Configuracion </li>
  #4 (permalink)  
Antiguo 07/10/2010, 11:40
 
Fecha de Ingreso: septiembre-2010
Mensajes: 43
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Ajax no responde,se queda en estado readyState 1

Por cierto, se me olvidaba he probado a poner el codigo como me lo has puesto pero no funciona tampoco..
Y en el post pasado he visto que la palabra inside no se porque lo pone separado en el post,pero en mi archivo está la palbra inside junta

Etiquetas: ajax, estado, queda, readystate
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:32.