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

status == 0 , responseXML == null

Estas en el tema de status == 0 , responseXML == null en el foro de Frameworks JS en Foros del Web. Saludos! este es el code: function giveme_http() { if (ajax.readyState == 4) { if (ajax.status == 200 || ajax.status==0) { xmlResponse = ajax.responseXML; alert(xmlResponse); xmlDocumentElement ...
  #1 (permalink)  
Antiguo 14/05/2010, 09:46
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Información status == 0 , responseXML == null

Saludos!

este es el code:

function giveme_http() {
if (ajax.readyState == 4)
{
if (ajax.status == 200 || ajax.status==0)
{
xmlResponse = ajax.responseXML;
alert(xmlResponse);
xmlDocumentElement = xmlResponse.documentElement;
data_data = xmlDocumentElement.firstChild.data;
}

}
}

Bueno lo que sucede es que el status me esta dando == 0 en lugar ==200, en otros codigo me accesa perfectamente pero esta vez no quiere accesar, no entiendo porque.

Busque en internet y lei en un post que me esta dando ==0 porq el archivo es local, cosa rara porq siempre lo he hecho local y me da ==200, pero ok le agregue O ==0, pero ahora el problema es que el responseXML me esta dando ==null, tengo el header text/xml y todo correctamente en mi archivo XML extension PHP, y aun asi me dice null.

Alguien sabe las posibles causas ?

Grax!
  #2 (permalink)  
Antiguo 14/05/2010, 09:55
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: status == 0 , responseXML == null

Estoy tratando de hacer algo similar y me paso que el archivo de PHP tuve que indicar un header que es text/xml. Ya indicaste que lo tienes así. Te recomiendo que hagas un responseText para que veas si está recibiendo los datos correctos. Te recomiendo que lo hagas en un alert para que veas bien la estructura algo así
Código Javascript:
Ver original
  1. alert(ajax.responseText);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 14/05/2010, 10:05
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: status == 0 , responseXML == null

El alert sale completamente vacio, Hmmmm como que eso de que el archivo es local y obligatoriamente debe ser ==0 como que no me convence, para mi que si de alguna manera logro saber porq me da ==0 y logro que me de ==200 , no tendre problemas con la lectura del archivo, porq es que tengo varias conexiones AJAX y funcionan correctamente local, me devuelven 200 y leen el archivo normalmente, la unica diferencia ahora es el evento , pero seguire viendo a ver.

Grax , espero mas respuestas!

Edito:

El problema era la estructura del nuevo archivo XML, ya me esta devolviendo Object,
pero en cuanto al status, LOL, a ver quien me explica esto:

function giveme_http() { alert("hola");

Si coloco un alert al principio de la funcion el status es ==200, si no lo hago es ==0

POR QUE?

grax ^_^

Última edición por Bigcrime; 14/05/2010 a las 10:22
  #4 (permalink)  
Antiguo 14/05/2010, 10:23
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: status == 0 , responseXML == null

Bueno, yo no veo porque debes usar == 0. Se supone que con == 200 es la forma correcta de hacerlo, no he visto que los manuales que he leído indiquen que debes usar también == 0. Lo que sí es que si te trae un campo vacio, ya el problema es el archivo de PHP. Vas a tener que hacer pruebas directamente en ese archivo para ver si recibe los datos correctamente. Si estás enviando los datos por el método de GET solo debes escribir en la dirección las variables que estás enviando directamente en el campo de direcciones y así vez como se comporta PHP.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 14/05/2010, 11:24
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: status == 0 , responseXML == null

Cita:
Busque en internet y lei en un post que me esta dando ==0 porq el archivo es local, cosa rara porq siempre lo he hecho local y me da ==200[...]
queria comentar un detalle acerca de la cita. recuerdo en un foro que antes participaba alguien habia preguntado algo similar. en el analisis que hice, la conclusión fue que si usas el protocolo file:///, el navegador no realiza peticiones HTTP. por lo que siempre status se mantiene en 0.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 14/05/2010, 11:26
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: status == 0 , responseXML == null

!!!!!!!! volvi de comer, me puse a quitar los alerts y no me lee el archivo o,O!

Si pongo el alert al inicio de la funcion, me da status 200 y me lee el archivo, si lo quito
me da status 0, pero como le puse || ajax.status == 0 entra y cuando llega al alert del responseXML no hace nada, es decir no ejecuta el alert --,--

En cuanto a la estructura del archivo XML esta bien, ya que con el alert recibio las variables y las proceso en la base de datos sin problemas.(el alert me devuelve object y estoy recibiendo el string esperado)

Esto si que esta raro, pero aun sigo pensando que tiene que ver con el evento, porque es lo unico diferente que estoy haciendo a comparacion de las otras veces. Esta vez estoy aplicandolo en el evento onsubmit.

Alguien sabe la causa ? Grax!
  #7 (permalink)  
Antiguo 14/05/2010, 11:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: status == 0 , responseXML == null

Cita:
Iniciado por zerokilled Ver Mensaje
queria comentar un detalle acerca de la cita. recuerdo en un foro que antes participaba alguien habia preguntado algo similar. en el analisis que hice, la conclusión fue que si usas el protocolo file:///, el navegador no realiza peticiones HTTP. por lo que siempre status se mantiene en 0.
Eso ley yo en un foro, decia que si la url era relativa era ==0 y si era absoluta ==200, pero no creo que sea verdad, "creo" que aunque la URL que indiques sea relativa, AJAX toma toda la direccion de la ubicacion, si pones file.php, el interpreta toda la ubicacion http://localhost/mipagina/file.php, lo digo porque entonces como explicar que el manual que lei de AJAX no lo indicaba y funcionaba, y porque tengo muchas conexiones AJAX locales y me devuelven 200 !!

Lo que si esta raro es lo del aLert estoy muerto de risa, no me la puedo creer,
realmente no quiero dejar ese alert , me dañaria la pagina, no me gustan los alert !

Grax! espero alguna respuesta a este caso
  #8 (permalink)  
Antiguo 14/05/2010, 11:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: status == 0 , responseXML == null

El no está indicando sobre rutas relativas o absolutas, sino usar protocolo file en vez de http.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 14/05/2010, 16:09
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: status == 0 , responseXML == null

Cita:
Iniciado por abimaelrc Ver Mensaje
El no está indicando sobre rutas relativas o absolutas, sino usar protocolo file en vez de http.
LOL no conosco ese protocolo, crei que se referia a el uso de archivos locales !

AFF alguien sabe que sucede ? alguien podria decirme todas las causas posibles por las cuales el status devuelva 0 ?

grax!
  #10 (permalink)  
Antiguo 14/05/2010, 18:17
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: status == 0 , responseXML == null

de eso se trata, cuando el navegador usa el protocolo file es para trabajar con archivos locales, la diferencia es la forma en que realiza las peticiones. recuerda que una de las caracteristicas de los navegadores es la habilidad de poder comunicarse en la red con diferentes protocolos, siendo el mas utilizado el HTTP. cada protocolo es un sistema de comunicacion electronico totalmente diferente. solo para poner unos puntos claros, si tienes un servidor HTTP instalado en tu equipo, asegurate de realizar las peticiones AJAX desde el servidor (localhost, 127.0.0.1, o similares).

en relacion a tu problema, ¿estas cancelando el evento de envio del formulario? admito que no desarrollo con tecnicas de AJAX. pero se me hace la idea que si no cancelas el evento, el navegador pudiera interferir con AJAX al realizar la peticion de FORM. aunque tambien me pone en duda porque las peticiones AJAX se realizan en un proceso distinto. es lo unico que se me ocurre...
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 14/05/2010, 20:17
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: status == 0 , responseXML == null

Yo probe con el evento onclick y si me funciono, no entiendo porq con onsubmit, status no me da ==200, quizas AJAX no funciona en este evento , no se que pensar, quizas pensaron que nadie queria enviar alguna informacion a un archivo PHP si ya de por si el submit lo hace, digo yo, no se ,quien sabe , pero yo lo necesito!!!

si al cancelar te refieres a un return false; si lo estoy haciendo

Bueno espero mas respuestas! y grax!
  #12 (permalink)  
Antiguo 14/05/2010, 20:23
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: status == 0 , responseXML == null

Vas a tener que verificar que estés enviando correctamente los datos. Verifica que estés enviando correctamente los campos, haz un alert a cada campo que estás enviando en la petición y verifica los datos. Otra cosa importante, si estás usando IE para la petición, es importante que envies un dato aleatorio para que así el navegador de IE pueda reconocer algún cambio en la petición.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #13 (permalink)  
Antiguo 14/08/2013, 02:13
 
Fecha de Ingreso: agosto-2013
Mensajes: 1
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: status == 0 , responseXML == null

La respuesta es completamente correcta, es debido al uso del protocolo file. Una prueba unitaria básica te puede servir para verificarlo.
- Si generas un fichero html y accedes a él a través del sistema de ficheros la petición se realizará pero no sabrá manejar la respuesta, núnca llega a status == 200 y por tanto el responseText y responseXML estarán siempre vacios.
- Si accedes al fichero a través del navegador mediante una llamada http://localhost... funcionará correctamente.

Etiquetas: ajax, null, status
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 21:34.