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

problemas con readyState

Estas en el tema de problemas con readyState en el foro de Frameworks JS en Foros del Web. hola. estoy haciendo una aplicacion donde al cliquear sobre una foto pasa a la foto siguiente. puse etiquetas div con diferentes id para que ajax ...
  #1 (permalink)  
Antiguo 19/12/2010, 10:37
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 15 años
Puntos: 5
problemas con readyState

hola.
estoy haciendo una aplicacion donde al cliquear sobre una foto pasa a la foto siguiente.

puse etiquetas div con diferentes id para que ajax valla cargando los datos y un form con un campo oculto de donde ajax recupera el id de la foto para saber cual es la proxima foto.

mi problema es que al hacer clik en la foto que llama al script este se queda siempre en esperando, o sea que nunca pasa a la parte del script donde readyState = 4.

les pongo el script:
Código:
function getXMLHTTPRequest() {
try {
req = new XMLHttpRequest();
} catch(err1) {
  try {
  req = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (err2) {
    try {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (err3) {
      req = false;
    }
  }
}
return req;
}

var http = getXMLHTTPRequest();

function nexfoto()
{
	var ids = document.miform.namefoto.value;
	var miAleatorio=parseInt(Math.random()*99999999);
	var url = "servidor_photo_prev.php?id=" + ids;
	http.open("GET", url+ "&rand=" + miAleatorio, true);
    http.onreadystatechange = reponsephotonext;
    http.send(null); 
}

function reponsephotonext() {
if(http.readyState == 4) {
if(http.status == 200) {
	
	        var nodoinfo = http.responseXML.getElementsByTagName("photodata")[0];
            var textolink = nodoSaludo.childNodes[0].nodeValue;
			var textoid = nodoSaludo.childNodes[1].nodeValue;
			var textoplace = nodoSaludo.childNodes[2].nodeValue;
			var textodata = nodoSaludo.childNodes[3].nodeValue;
			var textoname = nodoSaludo.childNodes[4].nodeValue;
            document.getElementById('nombrefoto').innerHTML = (textoname);
			document.getElementById('foto').innerHTML = ("<a href='javascript:;' onclick='nexfoto();'> <img src='"+ textolink +"' width='600'></img>");
			document.getElementById('namefoto').innerHTML = ("<input type='hidden' id='namefoto' value='" + textoid + "'></form>");

        } else {
		alert("Ha ocurrido un error: " + miPeticion.statusText);
        }
    }else {     // si readyState ha cambiado
                 // pero readyState <> 4
           document.getElementById('foto').innerHTML = "<img src='jpg/cargador.jpg' width='600'></img>";
    }
}
el servidor es php y te larga el siguiente xml:
Código:
  <?xml version="1.0" ?> 
- <fotos>
- <photodata>
  <link>fotos/usuarios/laouen/fondo.jpg</link> 
  <id>2</id> 
  <lugar>capital federal</lugar> 
- <fecha>
  <br>20-12-11</br> 
  18:54:42 Hs: 
  </fecha>
  <fotoname>fondo.jpg</fotoname> 
  </photodata>
- <photodata>
  <link>fotos/usuarios/laouen/tarjeta.jpg</link> 
  <id>3</id> 
  <lugar>capital federal</lugar> 
- <fecha>
  <br>20-12-11</br> 
  18:54:42 Hs: 
  </fecha>
  <fotoname>tarjeta.jpg</fotoname> 
  </photodata>
  </fotos>
no se porque el script se queda en la parte donde le indico que hacer mientras el servidor no dio la respuesta o sea readyState no es 4.

alguien ve cual es el error ?
__________________
un saludo..... . . .
  #2 (permalink)  
Antiguo 19/12/2010, 11:32
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: problemas con readyState

sivas a usar etiquetas < > o & entonces ocurrira error ya que el al interpretar y leer se confundira con las etiquetas del XML, por tanto tienes que encerrar en CDATA y con esto se e¡ignorará las etiquetas de marcado

Código Javascript:
Ver original
  1. <fecha>
  2.   <![CDATA["<br>20-12-11</br>
  3.  18:54:42 Hs:"] ]>
  4. </fecha>

Saludos
  #3 (permalink)  
Antiguo 19/12/2010, 16:57
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 15 años
Puntos: 5
Respuesta: problemas con readyState

mira el error que me dice la consola de javascript del google crome es el siguiente.

"Resource interpreted as image but transferred with MIME type text/html"
__________________
un saludo..... . . .
  #4 (permalink)  
Antiguo 19/12/2010, 20:30
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: problemas con readyState

Despues de http.onreadystatechange

agrega esto

http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

Intenta con eso, Ademas me parece que te falto cerrar un <a>

document.getElementById('foto').innerHTML = ("<a href='javascript:;' onclick='nexfoto();'> <img src='"+ textolink +"' width='600'></img></a>"

Saludos
  #5 (permalink)  
Antiguo 20/12/2010, 06:26
Avatar de intiweb  
Fecha de Ingreso: mayo-2009
Ubicación: Capital Federal
Mensajes: 363
Antigüedad: 15 años
Puntos: 5
Respuesta: problemas con readyState

probe agregando la linea que me dijiste y serrando el link pero no, sigue el problema igual :( no se que le pasara.
__________________
un saludo..... . . .
  #6 (permalink)  
Antiguo 20/12/2010, 09:02
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: problemas con readyState

Tu archivo php tiene la extension .php ?, al parecer ya es un error de configuracion del servidor php sobre el archivo htaccess

Última edición por alfcm; 20/12/2010 a las 09:14

Etiquetas: ajax, 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 00:07.