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

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

其他的用途是什么,我可以在哪些实际应用中使用它们?


答案 1

完整的值列表是: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之外,您几乎从不使用其中任何一个。

一些XMLHttpRequest 实现可以让您在 when 中看到部分收到的响应,但这并非普遍支持,也不应依赖。responseTextreadyState==3


答案 2

kieron的答案包含没有人依赖的w3schools引用,bobince的答案给出了链接,这实际上告诉了IE的本机实现,

所以这里引用的原始文件,以正确理解readystate代表什么:

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

取消发送(数值 0)
已构造对象。

OPENED(数值 1)
已成功调用 open() 方法。在此状态下,可以使用 setRequestHeader() 设置请求标头,并且可以使用 send() 方法发出请求。

HEADERS_RECEIVED(数值 2)
已遵循所有重定向(如果有),并且已收到最终响应的所有 HTTP 标头。该对象的几个响应成员现在可用。

加载(数值 3)
正在接收响应实体正文。

DONE(数值 4)
数据传输已完成或在传输过程中出现问题(例如,无限重定向)。

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