Introducción a AJAX y el objeto XMLHttpRequest

Este artículo es una recopilación de datos provenientes de varias fuentes en internet y varios códigos que poco a poco he ido aplicando en el transcurso del tiempo. La mayor parte de este documento es una actualización y traducción de un artículo que podéis encontrar en la siguiente dirección http://www.jibbering.com/2002/4/httprequest.html con fecha de enero de 2006.

Las cosas desde ese momento no han cambiado mucho en AJAX aunque si se han actualizado algunos componentes del objeto XML HTTP Request sobre todo para Internet Explorer, siendo el cambio más novedoso que desde IE8 ya existe compatibilidad innata con el objeto XMLHttpRequest no siendo ya necesaria la creación de ActiveXObject, esta compatibilidad se había venido testeando por parte de Microsoft desde IE7 pero la compatibilidad innata sólo la han alcanzado en IE8.

¿Qué es el objeto XMLHttpRequest y por qué utilizarlo?

Tanto IE, Safari, Mozilla, Konqueror, Ice Browser, Opera como todos los navegadores que se basen en los motores de estos proveen un método para el cliente basado en javascript por el cual se pueden hacer llamadas y peticiones al servidor a través de HTTP, esta tecnología es la conocida como AJAX.

El objeto necesario para estas operaciones es XMLHttpRequest y aunque su nombre indique XML no está limitado al uso de este formato sino que la respuesta puede ser generada en cualquier tipo de archivo devolviendo datos en formato de texto, XML o HTML. Según el archivo de origen los flujos binarios pueden causar problemas en javascript, y personalmente nunca lo he testeado.

¿Cómo crear el objeto XMLHttpRequest?

Según el navegador esta instrucción varía, para Internet Explorer versiones anteriores a la 8 era necesario crear un objeto ActiveXObject según la versión del Microsoft XML Core Services (MSXML) que esté instalada. En el siguiente artículo veremos el código. Las distintas versiones en la actualidad para MSXML son las siguientes: Msxml2.XMLHTTP.7.0, Msxml2.XMLHTTP.6.0, Msxml2.XMLHTTP.5.0, Msxml2.XMLHTTP.4.0, Msxml2.XMLHTTP.3.0, Msxml2.XMLHTTP, Microsoft.XMLHTTP. Realmente la versión Msxml2.XMLHTTP.7.0 era la destinada a nuevos navegadores como IE8 pero al traer innata la compatibilidad con XMLHttpRequest, esta versión del MSXML está en fase de desarrollo aún. Para más detalles sobre Microsoft XML Core Services (MSXML) visitar esta web de la Wikipedia (en inglés) http://en.wikipedia.org/wiki/MSXML.

Comentarios