Método onreadystatechange del objeto XMLHttpRequest

Con este método lo que hacemos es tratar la respuesta recibida por parte del servidor, ¿Cómo sabemos cuando se ha ejecutado correctamente? Para ello utilizamos:

ajaxNEW.readyState

Este devolverá los siguientes valores:
0 - Sin inicializar
1 - Abierto (acaba de llamar open)
2 - Enviado
3 - Recibiendo
4 - A punto
por ejemplo:

ajaxNEW.onreadystatechange=function() {
if (ajaxNEW.readyState==4)
// pongo la rspuesta tal y como la recibo dentro del contenedor
// la propiedad responseText me devuelve la respuesta tal y como se genera en el server.
contenedorLugar.innerHTML = ajaxNEW.responseText;
}

Si ademas queremos compreobar que se ejecutó correctamente la página una vez llegado as readyState == 4 nos bastaría con hacer otra comprobación:

if (xmlhttp.readyState==4) {
if (xmlhttp.status==200) alert("URL Exists!")
else if (xmlhttp.status==404) alert("URL doesn't exist!")
else alert("Status is "+xmlhttp.status)
}

La propiedad status almacena la respuesta del servidor referente a la ejecución de la url y esta, entre otros valores puede ser:
* 200 Todo correcto
* 400 Bad syntax (Error de sintaxis)
* 401 Unauthorized (Acceso no autorizado, el usuario debe autentificarse)
* 403 Forbidden (Acceso Prohibido)
* 404 Not Found (No Encontrado)
* 405 Method not allowed (Modo no permitido)
* 500 Internal Error (Error Interno)
* 501 Not Implemented (No Implementado)
* 502 Overloaded (Sobrecargado)
* 503 Service Unavailable (Servicio no disponible)
* 504 Gateway Timeout (Gateway Fuera de Tiempo)
* 505 HTTP Version not supported (Versión de HTTP no Soportada)
Para ver un listado completo podemos dirigirnos a http://www.emezeta.com/articulos/diagrama-de-codigos-de-error-http.
un ejemplo utilizando el open con el parámetro HEAD:

xmlhttp.open("HEAD", "/faq/index.html",true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 and xmlhttp.status==200) {
alert("File was last modified on - "+
xmlhttp.getResponseHeader("Last-Modified"))
}
}
xmlhttp.send(null)

Comentarios