我在理解XMLHttpRequest的处理程序时遇到了一点问题。规范说明了有关onerror处理程序的内容:
error[Dispatched ... ] 当请求失败时。
load[Dispatched ... ] 当请求成功完成时。
问题是,“请求失败”是什么意思。那可能是
- 根本无法发出请求(例如,连接被拒绝和此类错误),或
- 以上加上服务器返回的错误代码(例如404)
另外,我想知道它是否意味着onerror并且onload不应该同时开火。
此参考表明onerror应根据status代码执行处理程序,并onload取决于readyState. 这表明它们不是相互排斥的,但是,我认为这不是权威信息。
我问是因为使用最新的 Opera 快照,我发现onload即使在 404 状态码上也会被触发。我知道测试status是一个肯定的选择,但我想知道这是我必须按照规范执行的操作,还是只是针对 Opera 中的错误的一种解决方法。