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

XMLHttpRequest estado 0 constante

Estas en el tema de XMLHttpRequest estado 0 constante en el foro de Frameworks JS en Foros del Web. Hola a todos!! El titulo del tema esta mal!! Debido a que "solucione" ya ese problema Mi nuevo problema es el siguiente: tengo un código ...
  #1 (permalink)  
Antiguo 17/01/2006, 06:00
 
Fecha de Ingreso: diciembre-2005
Mensajes: 10
Antigüedad: 18 años, 4 meses
Puntos: 0
XMLHttpRequest estado 0 constante

Hola a todos!! El titulo del tema esta mal!! Debido a que "solucione" ya ese problema

Mi nuevo problema es el siguiente: tengo un código que "copie" de otro que funciona correctamente, no consigo que el estado cambie de 1 a cualquier otro y no se el motivo por el que se produce.

El codigo es el siguiente utilizando una URL correcta

function getXML(url,post,procfunction)
{

try {
if (!(window.XMLHttpRequest))
{
//ie
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("POST", url, true);
xmlhttp.onreadystatechange = procfunction();
xmlhttp.send(post);
}
else
{
// everyone else

xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", url, true);
xmlhttp.onreadystatechange = procfunction();
xmlhttp.send(post);
}
}
catch(e)
{
alert(e);
alert("if you just got a security exception, its because you need to serve the .html file from the same server as where you're sending the XML requests to!");
}
}

El cual no entra en el catch, post es xml y la funcion que llama....

function XMLProgressFunction()
{
alert("Toy en XMLProgressFunction1 "+xmlhttp.readyState);
if ( (xmlhttp.readyState == 4) && (xmlhttp.status == 200) )
{
hace cosas
}
}

La respuesta en el alert para la variable readyState es 1.

Os agradeceria mucho vuestra ayuda.

Última edición por MariaMG; 18/01/2006 a las 03:06
  #2 (permalink)  
Antiguo 17/01/2006, 21:33
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading......


Nunca cambiarà el estado porque no veo la funcion que procesa los estados y toda operacion se debe realizar dentro de esa funcion.



connection closed.
__________________

Maborak Technologies
  #3 (permalink)  
Antiguo 18/01/2006, 03:05
 
Fecha de Ingreso: diciembre-2005
Mensajes: 10
Antigüedad: 18 años, 4 meses
Puntos: 0
Lo siento MaBoRaK, creo que no me explique adecuadamente:

A la funcion getXML se le pasan como parametros la url, el xml que se enviara en el post y el nombre de la funcion que se ejecuta en onreadystatechange.Esta funcion es la que aparece un poco mas abajo llamada XMLProgressFunction.

Era eso a lo que te referias??

Gracias por contestar.
  #4 (permalink)  
Antiguo 18/01/2006, 06:22
 
Fecha de Ingreso: diciembre-2005
Mensajes: 10
Antigüedad: 18 años, 4 meses
Puntos: 0
Problema solucionado.

Al final resulto ser mas un problema de javascript que de ajax.
El problema esta en que en la asignacion de :

xmlhttp.onreadystatechange = procfunction()

la referencia al metodo no debe contener los paréntesis. Por lo tanto, la forma correcta de escribirla seria:

xmlhttp.onreadystatechange = procfunction

Espero que esto sirva de ayuda a la gente tan inexperta y despistada como yo
  #5 (permalink)  
Antiguo 18/01/2006, 13:55
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading............


bueno preciosa pon al principio de tu javascript.
var xmlhttp;

y probalo.



connection closed.
__________________

Maborak Technologies
  #6 (permalink)  
Antiguo 18/01/2006, 13:57
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading...........



pasa que


function XMLProgressFunction()
{
alert("Toy en XMLProgressFunction1 "+xmlhttp.readyState);
if ( (xmlhttp.readyState == 4) && (xmlhttp.status == 200) )
{
hace cosas
}


ahì nunca se hace referencia a la variable que contiene el objeto, sinò a alguna variable x pero si haces global la variable xmlhttp podrás acceder a la misma desde cualquier punto.



connection closed.
__________________

Maborak Technologies
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 22:46.