题
我正在使用AJAX向CGI程序发出请求。响应发送给我内容长度。我的目的是动态展示响应进度。为此我需要在XHR对象的onreadystate值上启动一个函数为3.但是请求似乎没有获得该状态号。相反,它直接从状态1进入状态4。 我错过了什么?
解决方案
响应可能会如此之快,以至于您只是在状态3处没有注意到它。特别是如果您在localhost上运行它,响应可以非常快速地传输。您可以尝试在第3阶段设置警报,以测试它是否真正到达那里。此外,我相信Internet Explorer会说在第3阶段访问响应是错误的,因此可能存在兼容性问题。
其他提示
如果您在localhost上运行,那么浏览器可能永远无法在发送请求的时间和获得响应的时间之间运行...
- 浏览器打开连接,将readyState设置为1
- 浏览器将数据包发送到服务器进程
- 服务器进程接收数据包,从调度程序获取优先级
- 服务器将数据返回给浏览器,并产生对CPU的控制。浏览器继续执行。
- 浏览器看到已收到所有数据,将readyState设置为4。 醇>
长话短说:不要指望进入“接收”状态。州。
不隶属于 StackOverflow