是否在XMLHttpRequest中检查readyState和status所需的状态?

时间:2013-03-09 10:12:04

标签: javascript xmlhttprequest http-status-code-200

this discusison中,我们可以看到处理 XMLHttpRequest 并防止错误的 readyState 状态组合的语法,如下所示

if (request.readyState == 4 && request.status == 200) { ... }

我一直在使用联合条件信任,两个案例都是独立的,允许在联系服务器时所有四种操作成功组合。

昨天,我在思考,但是我无法解释它们可能是什么。它们是什么?

  1. 所有花花公子: readyState 已完成(4)且状态已确定(200)。
  2. 错误沟通: readyState 已完成(4)且状态不正常(!200)。
  3. 尚未完成: readyState 未完成(!4)且状态正常(200)。
  4. ?!?!?!?!: readyState 未完成(!4)且状态正常(!200)。
  5. 特别是,我不知道未完成的事情是好还是不好(案例3和4)。如果还没有完成(或者总是状态不正常),它是不是总是状态确定?!

1 个答案:

答案 0 :(得分:1)

  

我不知道未完成的事情是好还是不好(案例3和4)。

这不是你要测试的。

测试是:准备好了吗?没有?这种情况失败了。

你没有:

if (request.readyState != 4 && request.status == 200) { ... }

if (request.readyState != 4 && request.status != 200) { ... }

您只关心请求完成时的状态是否正常。

您的语法是:

的简写
if (request.readyState == 4) {
  if (request.status == 200) { ... }
}