0

我正在使用 AJAX 向 CGI 程序发出请求。响应向我发送内容长度。我的目的是动态展示响应进度。为此,我需要在 XHR 对象的 onreadystate 值为 3 时启动一个函数。但该请求似乎没有获取该状态编号。相反,它直接从状态 1 到状态 4。我错过了什么?

4

2 回答 2

0

响应可能非常快,以至于您在状态 3 时根本没有注意到它。特别是如果您在 localhost 上运行它,响应可能会非常快速地传输。您可以尝试在到达第 3 阶段时设置警报,以测试它是否真的到达那里。另外,我相信 Internet Explorer 说在第 3 阶段访问响应是错误的,因此可能存在兼容性问题。

于 2009-01-02T15:00:43.057 回答
0

如果您在本地主机上运行,​​那么浏览器可能永远没有机会在发送请求和获得响应之间运行......

  1. 浏览器打开连接,将 readyState 设置为 1
  2. 浏览器向服务器进程发送数据包
  3. 服务器进程接收数据包,从调度程序获得优先级
  4. 服务器将数据返回给浏览器,并让出对 CPU 的控制权。浏览器继续执行。
  5. 浏览器看到所有数据都已收到,将 readyState 设置为 4。

长话短说:不要指望进入“接收”状态。

于 2009-01-03T19:24:02.933 回答