Javascript 用于中止或超时的XMLHttpRequest readyState
例如,如果您有一个Javascript 用于中止或超时的XMLHttpRequest readyState,javascript,ajax,xmlhttprequest,Javascript,Ajax,Xmlhttprequest,例如,如果您有一个XMLHttpRequest实例已超时或已中止,但在onTimeout事件期间您没有执行任何操作,我们如何查看XMLHttpRequest实例处于何种状态 例如,如果请求返回404-则在请求完成后很长一段时间内,可以在status属性中看到这一点 但超时似乎并没有留下任何东西。超时时的readyState已“完成”,并且没有响应——但无法知道为什么没有响应(超时、连接问题、中止等) 上下文: 我正在使用主干网。它使用jQuery中的XMLHttpRequest。中止/超时接收到
XMLHttpRequest
实例已超时或已中止,但在onTimeout事件期间您没有执行任何操作,我们如何查看XMLHttpRequest实例处于何种状态
例如,如果请求返回404-则在请求完成后很长一段时间内,可以在status
属性中看到这一点
但超时似乎并没有留下任何东西。超时时的readyState
已“完成”,并且没有响应
——但无法知道为什么没有响应(超时、连接问题、中止等)
上下文:
我正在使用主干网。它使用jQuery
中的XMLHttpRequest
。中止/超时接收到的errorText/异常不会由应用程序逻辑的Backbone
显示,只有XHR
实例本身
因此,需要直接从XHR
中查找此信息,而无需附加onTimeout
事件处理程序等
看起来解决方案可能是调整它附加超时事件的方式,或者冒泡它的错误。进一步检查,尽管似乎没有任何文档,但在
jqXHR
上有一个textStatus
属性,该属性已设置并可在触发事件后访问。我要用这个
如果您不使用jQuery,并且onTimeout甚至已经过了,那么这对您没有帮助。感觉可以添加一个额外的readyState选项来反映超时状态。可能的重复以及为什么不在
onTimeout
处理程序中执行一些操作以了解情况?如问题中所述,我想在调用超时事件后检查这一点。解决这个问题的办法是倾听事件的进展。在我的例子中,其他第三方lib(主干)吞并了onTimeout事件,只将XHR对象本身传递回我的代码。@simbolo您所说的XMLHttpRequest
。我在你的帖子中没有提到任何第三方。他们会在事情发生后把它传回去吗?可能为第三方库编写功能请求…