Archivo de Etiquetas de 'ajax'

JSF y AJAX: un error tonto

Aunque Mariscal no se lo acaba de creer, DimeHoteles.com utiliza AJAX en algunas de sus partes. Utilizar AJAX con JSF es algo relativamente fácil: creamos un PhaseListener que intercepte las llamadas y actuamos en consecuencia (el javascript y demás es AJAX en si mismo, nada que ver con JSF). En este post no pretende a usar AJAX con JSF, simplemente comentar un error tonto que puede hacerte perder el tiempo: ¿por qué si envío la respuesta correctamente no puedo procesarla como XML?.


Como sabreis, al recibir la respuesta en nuestra rutina JavaScript, podemos tratarla como XML o como HTML. Si la tratamos como HTML (req.responseText), sólo tendremos que añadirlo a la región de la página que queramos modificar. Pero sin embargo, al tratarlo como XML (req.responseXML), podemos tener la tentación de olvidar una de los partes obligatorios de todo documento XML, su cabecera.

Podemos estar tentados a pensar que poniendo el content-type, el charset y el encoding a nuestra respuesta (a través del objeto response del API de Servlets), nuestro documento será tratado correctamente al procesar el XML. Más aún si también solemos enviar la respuesta en HTML directamente. Craso error. Debemos considerar que esa información es sólo para el envío, y que una vez en el navegador del cliente, se trata como un documento XML tal cual. Y como tal, tiene que tener su propia cabecera XML (), porque de lo contrario nos dará un error al parsearlo, obteniendo un precioso null al hacer req.responseXML.




Close
E-mail It