我的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其他时候,它将收集以下日志,这些日志是不被期望的:(在本例中,在我的应用程序超时之前的22秒钟内,readyState从未更改为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,但从未更改为2/3/4,我的帖子请求实际上是:
注意,这是在IE 11上。
谢谢,
发布于 2018-01-12 11:12:20
如果readyState为1,则只意味着调用了open方法。这不能说请求是否已发送。如果调用了方法send,则客户端将使用服务器创建一个机构。如果连接失败,事件onerror将被触发。因此,尝试查看错误消息,它将说明原因。
来回答这个问题。如果send是1,则可能没有调用readyState,但是如果您想知道方法send是否被调用,则应该查看代码,并在调用方法发送时记录消息。另外,如果readyState是1,并且检查了调用send的方法,这意味着客户端开始使用服务器进行建立,所以可能是数据包已经在路上,并且可能因为某种原因而被卡住了。
简而言之,readyState无法判断方法send是否被调用。检查的方法是查看代码,并确保方法send是否被调用。
https://stackoverflow.com/questions/48217557
复制相似问题