2

本次讨论中,我们可以看到处理XMLHttpRequest和防止错误的readyState状态组合的语法如下。

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

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

昨天,我在想,我无法解释它们可能是什么。这些是什么?

  1. 所有花花公子:readyState已完成 (4) 并且状态为 OK (200)。
  2. 错误的通信:readyState已完成 (4) 并且状态不正常 (!200)。
  3. 尚未完成:readyState尚未完成 (!4) 且状态正常 (200)。
  4. ?!?!?!?!: : readyState未完成 (!4) 且状态正常 (!200)。

特别是,我不明白未完成的事情如何既可以也可以不可以(案例 3 和 4)。未完成时不应该始终是状态 OK(或始终状态不是 OK)吗?!

4

1 回答 1

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) { ... }
}
于 2013-03-09T10:16:31.290 回答