Resulta que tengo problemas trabajando con AJAX (usando JQuery), a la hora de recibir paquetes XML con acentos el paquete no se forma o no sé que pasa que a la hora de parsearlo es como si estuviera vacio. Pero si hago un alert(datos.responseText) el contenido es OK. El problema sólo ocurre cuando en el contenido del paquete contiene caracteres especiales 'latin-1' como acentos.
He mirado en hilos pasados, y aunque se ha hablado del tema no veo que nadie haya preguntado cuando el Content-type: text/xml (y no HTML).
Ahora veamos como estoy organizando el código para que veas mejor el problema.
El caso real es que se envía un email desde un formulario y el server devuelve en un doc XML la ficha de un/varios usuario/s.
Recepción:
Lo procesa el archivo getUsers.php
he probado todas las combinaciones de cabeceras ;)
Envío: (Los parámetros del envio se reciben en getUsers.php correctamente)
Código HTML:
function ObtenerDatos(url_peticion) { cargado = false; params = "EMail="+encodeURIComponent(email); jQuery.ajax({ url: url_peticion+"?"+params, page: '', type: 'GET', dataType: 'xml', async: false, complete: function(datos) { cargado = true; showUsers(datos.responseXML); //alert(datos.responseText); } }); } function showUsers(docXML) { idATRIB = '', valorATRIB = ''; // ¡¡ Al llegar aquí el valor length = 0 cuando viene un acento !! alert(docXML.getElementsByTagName('USER').length); listaNodos = docXML.getElementsByTagName('USER'); for (i=0;i<listaNodos.length;i++) { // Aqui recorremos y parseamos el PAQUETE XML } }
Y como siempre, muchas gracias por la atención y un saludo!