EJEMPLO
A continuación vamos a ver un pequeño ejemplo práctico, con una petición GET al servidor para conseguir un fichero llamado ajax.txt.
El botón de mi html lanza con el evento click la función loadXMLDoc() la cual crea una variable llamada xmlhttp. El primer condicional nos sirve para saber si nuestro navegador actual puede crear el objeto XMLHttpRequest que dependiendo del navegador lo creará de una manera u otra. Abrimos la comunicación GET para pedir el fichero ajax.txt y enviamos la petición (se puede enviar tanto asíncrona como síncronamente dependiendo del valor del booleano).
La función onreadystatechange() se ejecutará a cada cambio de estado y cuando la petición sea de 200 y el readystate de 4 significará que se ha completado con éxito (con cualquier otra solución debemos tratar el error o los errores que hemos visto en las tablas anteriores). Finalmente seleccionamos el div en cuestión (a partir del API del DOM) y cambiamos su texto plano por el que me ha venido en mi fichero ajax.txt.
XML VS JSON
Si comparamos los dos formatos, queda claro que uno no es mejor que otro. Como siempre, de lo que se trata, es saber cómo queremos tratar nuestra información y con qué queremos conectarnos para ese trato. Si estamos hablando de envío de datos de un extremo a otro (como en el caso de dos servicios web o para dos servidores independientes) XML parece una elección correcta. Aunque, también hay que decir que en el caso de los servicios web han aumentado el uso de REST frente a SOAP, servicios que van enfocados al uso de JSON. Si son datos que debemos transmitir en una misma aplicación internamente o, aparte, estamos haciendo uso de AJAX, JSON debería ser nuestra elección sin ningún tipo de dudas ya que la devolución del objeto de AJAX es fácilmente convertible.