【发布时间】:2013-02-24 21:57:21
【问题描述】:
在this discusison中,我们可以看到处理XMLHttpRequest和防止错误readyState和status组合的语法如下。
if (request.readyState == 4 && request.status == 200) { ... }
我一直在使用联合条件信任,即这两种情况是独立的,在联系服务器时允许操作成功的所有四种组合。
昨天,我在想,我无法解释它们可能是什么。它们是什么?
- 所有花花公子:readyState 已完成 (4),status 正常 (200)。
- 错误的通信:readyState 已完成 (4) 而 status 不正常 (!200)。
- 尚未完成:readyState 尚未完成 (!4),status 正常 (200)。
- ?!?!?!?!: : readyState 未完成 (!4),status 正常 (!200)。
特别是,我不明白未完成的事情如何既可以也可以不可以(案例 3 和 4)。未完成时不应该总是status OK(或者总是status not OK)吗?!
【问题讨论】:
-
如果您使用的是现代浏览器,请考虑使用
onload事件而不是onreadystatechange。当请求成功完成时会触发onload事件,因此您无需检查readyState。还有一个对应的onerror事件。
标签: javascript xmlhttprequest http-status-code-200