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

