Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于中止或超时的XMLHttpRequest readyState_Javascript_Ajax_Xmlhttprequest - Fatal编程技术网

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
。我在你的帖子中没有提到任何第三方。他们会在事情发生后把它传回去吗?可能为第三方库编写功能请求…