【发布时间】:2018-06-21 09:39:09
【问题描述】:
我的 JS 代码正在发送请求并监控“xhr.onreadystatechange”。有时它会收集以下日志,这是预期的:
timestamp event method readyState status
1/9/2018 9:08:43.474 xhr_readystatechange POST 1 0
1/9/2018 9:08:46.432 xhr_readystatechange POST 2 200
1/9/2018 9:08:46.432 xhr_readystatechange POST 3 200
1/9/2018 9:08:46.433 xhr_readystatechange POST 4 200
其他时候它会收集以下日志,这不是预期的:(在这种情况下,readyState 在我的应用程序超时之前的 22 秒内从未更改为 2)
timestamp event method readyState status
1/11/2018 21:36:25.390 xhr_readystatechange POST 1 0
1/11/2018 21:36:47.249 localSend failed
我明白:
- readyState 1 表示已调用 xhr.open 但尚未调用 xhr.send
- readyState 2 表示已调用 xhr.send 并收到响应标头
我的问题是:如果 readyState 更改为 1 但从未更改为 2/3/4,我的 POST 请求实际上是:
- 从未在线发送(xhr.send 尚未被调用)?如果是这样,可能是什么原因造成的?浏览器 JS 引擎中的 xhr.send 能否丢弃请求?
- 或者,发送到服务器但由于某种原因被卡在那里(因此响应标头尚未准备好)。
注意这是在 IE 11 上。
谢谢,
【问题讨论】:
-
在这种情况下最好显示代码而不是日志,但如果它随机发生,则可能是服务器端问题..Maybe related
标签: javascript xmlhttprequest onreadystatechange