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