XMLHttpRequest的onerror处理程序何时应触发
我在理解XMLHttpRequest
的处理程序时遇到了一些问题。规范说明了有关onerror
处理程序的信息:
error
[Dispatched …]请求失败时。
load
[Dispatched …]请求成功完成时。
问题是,“请求失败”是什么意思。那可能是
- 根本无法发出请求(例如,连接被拒绝以及此类错误),或者
- 上面加上服务器返回的错误代码(例如404)
另外,我想知道这是否意味着onerror
并且onload
永远不应同时触发。
该参考指示onerror
处理程序应取决于执行status
代码,并onload
根据readyState
。这表明它们并不相互排斥,但是,我认为这不是权威信息。
我问是因为使用最新的Opera快照,我发现onload
即使在404状态代码上也被触发。我知道测试status
是肯定的选择,但是我想知道这是我必须按照规范执行的操作,还是只是Opera中错误的解决方法。
回答:
如评论中所述,onerror
在 网络级别
出现故障时触发。如果错误仅在应用程序级别存在,例如,发送了HTTP错误代码,则onload
仍然会触发。您需要在onreadystatechange
处理程序中显式测试返回的状态代码。
请注意,被拒绝的跨域请求也会触发onerror
处理程序。
以上是 XMLHttpRequest的onerror处理程序何时应触发 的全部内容, 来源链接: utcz.com/qa/435844.html