No puse el codigo completo por que me parecio absurdo ponerlo dado que nadie lee el codigo completo y que el problema esta en donde yo marque, y utilizando el responseText no me dio dramas... pero aqui esta el codigo completo:
Código Javascritp:
Ver originalfunction respuestaAlRegistro()
{
if(objetoXHR.readyState==READY_STATE_COMPLETE)
{
if(objetoXHR.status==200)
{
try
{
alert("xml");
var xml = objetoXHR.responseXML;
alert("root");
var root = xml.getElementsByTagName("resultado")[0];
alert("elem");
var elem = root.getElementsByTagName("mensaje")[0];
alert("value");
alert(elem.firstChild.nodeValue);
}
catch (error)
{
alert(objetoXHR.responseText);
}
}
else
alert('ERROR: '+objetoXHR.status+'. Mensaje: '+objetoXHR.statusText+'\nError grave: el servidor no ha completado la peticion.\nIntentalo mas tarde o ponte en contacto con el administrador del juego.');
}
}
Código PHP:
Ver original<?php
echo '<resultado><mensaje>ACA NO HAY CONSULTAS SQL</mensaje>';
echo '<status>OK</status></resultado>';
?>
Código de lo devuelto por responseText:
Ver original<resultado><mensaje>ACA NO HAY CONSULTAS SQL</mensaje><status>OK</status></resultado>
Como veras en el catch traigo el response en modo texto y me lo muestra sin problemas. Es decir como ya dije el problema esta en el responseXML.
Ahora luego de modificar mi php para que no tenga ninguna consulta (en realidad tambien probe una consulta valida... insertar otro usuario y ocurre exactamente los mismo)... te pregunto QUE CARAJO TIENE QUE VER LA CONSULTA MAN!!! No se por que me gasto en poner todo el codigo si ni siquiera cuando pongo la porcion puntual donde el codigo da error me lees lo que te pregunto... (¬¬) Y disculpa que me caliente, pero no encontrar un error me da por los huevos y para colmo consultarlo donde se supone que puede saber, no solo no me responden sino que el unico que responde lee al vuelo y dice lo primero que se le ocurrio me saca completamente de las casillas...
Repito por si no se entendio...
El alert("elem"); no se muestra, lo que quiere decir que el error esta antes. El alert("root"); si se muestra por lo que el error viene despues. Puntualmente el error ocurre en la linea:
var root = xml.getElementsByTagName("resultado")[0];
Pregunta:
POR QUE???