open example ejemplo javascript ajax xmlhttprequest readystate

javascript - example - xmlhttprequest post



¿Qué significan los diferentes readystates en XMLHttpRequest y cómo puedo usarlos? (5)

La lista completa de los valores de readyState es:

State Description 0 The request is not initialized 1 The request has been set up 2 The request has been sent 3 The request is in process 4 The request is complete

(de https://www.w3schools.com/js/js_ajax_http_response.asp )

En la práctica, casi nunca usa ninguno de ellos, excepto 4.

Algunas implementaciones de XMLHttpRequest pueden permitirle ver respuestas parcialmente recibidas en responseText cuando readyState==3 , pero esto no es universalmente compatible y no se debe confiar en él.

XMLHttpRequest tiene 5 readyState s, y solo uso 1 de ellos (el último, 4 ).

¿Para qué sirven los demás y en qué aplicaciones prácticas puedo usarlos?


La respuesta de kieron contiene w3schools ref. a lo que nadie confía, la respuesta de bobince da un enlace, que realmente le dice a la implementación nativa de IE,

así que aquí está la documentación original que se cita para entender correctamente lo que representa el estado real:

El objeto XMLHttpRequest puede estar en varios estados. El atributo readyState debe devolver el estado actual, que debe ser uno de los siguientes valores:

UNSENT (valor numérico 0)
El objeto ha sido construido.

ABIERTO (valor numérico 1)
El método open () ha sido invocado con éxito. Durante este estado, los encabezados de las solicitudes se pueden establecer usando setRequestHeader () y la solicitud se puede realizar utilizando el método send ().

HEADERS_RECEIVED (valor numérico 2)
Se han seguido todos los redireccionamientos (si corresponde) y se han recibido todos los encabezados HTTP de la respuesta final. Varios miembros de respuesta del objeto están ahora disponibles.

CARGANDO (valor numérico 3)
El cuerpo de la entidad de respuesta se está recibiendo.

HECHO (valor numérico 4)
La transferencia de datos se ha completado o algo salió mal durante la transferencia (por ejemplo, redirecciones infinitas).

Por favor, lea aquí: W3C Explicación de ReadyState


onreadystatechange Almacena una función (o el nombre de una función) a la que se llamará automáticamente cada vez que la propiedad readyState cambie. ReadyState mantiene el estado de XMLHttpRequest. Cambios de 0 a 4:

0: solicitud no inicializada

1: conexión del servidor establecida

2: solicitud recibida

3: solicitud de procesamiento

4: solicitud finalizada y la respuesta está lista

estado 200: "OK"

404 Pagina no encontrada


Documentación definitiva original

0 , 1 y 2 solo realizan un seguimiento de cuántos de los métodos necesarios para realizar una solicitud ha llamado hasta ahora.

3 le dice que la respuesta del servidor ha comenzado a aparecer. Pero cuando usa el objeto XMLHttpRequest desde una página web, no hay casi nada (*) que pueda hacer con esa información, ya que no tiene acceso a las propiedades extendidas que le permiten leer los datos parciales.

ReadyState 4 es el único que tiene algún significado.

(*: sobre el único uso concebible que se me ocurre para comprobar ReadyState 3 es que señala alguna forma de vida en el extremo del servidor, por lo que posiblemente podría aumentar la cantidad de tiempo que espera una respuesta completa cuando la recibe. )


  • 0: se ha creado UNSENT Client. open () aún no llamado.
  • 1: OPENED open () ha sido llamado.
  • 2: HEADERS_RECEIVED send () ha sido llamado, y los encabezados y estado están disponibles.
  • 3: CARGANDO la descarga; responseText contiene datos parciales.
  • 4: HECHO La operación está completa.

(Desde https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState)