113

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

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

4

5 回答 5

173

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

一些responseTextXMLHttpRequest 实现可能会让您在when中看到部分接收到的响应readyState==3,但这不是普遍支持的,也不应该依赖。

于 2009-03-11T00:14:35.027 回答
32

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

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

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

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

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

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

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

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

请在此处阅读:W3C 对 ReadyState 的解释

于 2014-04-17T09:28:31.927 回答
22

原始权威文档

01并且2只跟踪到目前为止您调用了多少必要的方法来发出请求。

3告诉您服务器的响应已经开始进入。但是当您使用XMLHttpRequest网页中的对象时,您几乎无法使用该信息(*),因为您无权访问允许的扩展属性您读取部分数据。

readyState4是唯一具有任何意义的状态。

(*:我能想到的用于检查 readyState 的唯一可能用途3是它在服务器端发出某种生命形式的信号,因此您可能会增加在收到完整响应时等待完整响应的时间。)

于 2009-03-11T00:15:27.863 回答
1

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

0:请求未初始化

1:服务器连接建立

2:收到请求

3:处理请求

4:请求完成,响应就绪

状态 200:“确定”

404页面不存在

于 2015-08-06T10:27:31.303 回答
0
  • 0 : UNSENT 客户端已创建。open() 尚未调用。
  • 1:已调用 OPENED open()。
  • 2 : HEADERS_RECEIVED send() 已被调用,并且标头和状态可用。
  • 3 : LOADING 下载;responseText 保存部分数据。
  • 4 : DONE 操作完成。

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

于 2018-01-09T09:55:52.693 回答