XMLHttpRequest中的不同readystates是什么意思,我该如何使用它们?

XMLHttpRequest有5个readyState ,我只使用其中的1个(最后一个4 )。

其他人可以使用哪些实际应用程序?

readyState值的完整列表是:

 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 

(来自https://www.w3schools.com/js/js_ajax_http_response.asp

在实践中,除了4以外,几乎不会使用任何其他的。

readyState==3一些 XMLHttpRequest实现可能会让你在responseText看到部分接收到的响应,但这并不是普遍支持的,不应该被依赖。

基隆的答案包含w3schools参考。 没有人依赖, bobince的答案给出了链接,这实际上告诉了IE的本地实现,

所以这里是原来的文档引用正确理解什么readystate代表:

XMLHttpRequest对象可以处于几种状态。 readyState属性必须返回当前状态,该状态必须是以下值之一:

UNSENT(数值0)
该对象已被构build。

打开(数值1)
open()方法已成功调用。 在此状态期间,可以使用setRequestHeader()来设置请求标头,并且可以使用send()方法进行请求。

HEADERS_RECEIVED(数值2)
所有的redirect(如果有的话)都已经被遵守,并且最终响应的所有HTTP头已经被接收。 该对象的几个响应成员现在可用。

LOADING(数值3)
响应实体正在被接收。

完成(数值4)
数据传输已完成或传输过程中出现问题(例如无限redirect)。

请阅读这里: W3C的ReadyState的解释

原始的权威文件

02只跟踪到目前为止你要调用的请求有多less个必要的方法。

3告诉你服务器的响应已经开始进行了。但是当你使用网页中的XMLHttpRequest对象时,你可以使用这些信息几乎没有(*),因为你不能访问扩展属性允许您读取部分数据。

readyState 4是唯一具有任何意义的。

(*:关于检查readyState 3的唯一可以想象的用途是它在服务器端表示某种forms的生命,所以你可能增加等待收到完整响应的时间。 )

onreadystatechange存储每次readyState属性更改时自动调用的函数(或函数的名称)readyState保存XMLHttpRequest的状态。 从0到4的变化:

0:请求未初始化

1:build立服务器连接

2:收到请求

3:处理请求

4:请求已完成,响应已准备就绪

状态200:“确定”

404:找不到页面