Javascript XMLHttpRequest中是否需要同时检查readyState和status?
在中,我们可以看到处理XMLHttpRequest和防止错误的readyState和status组合的语法,如下所示Javascript XMLHttpRequest中是否需要同时检查readyState和status?,javascript,xmlhttprequest,http-status-code-200,Javascript,Xmlhttprequest,Http Status Code 200,在中,我们可以看到处理XMLHttpRequest和防止错误的readyState和status组合的语法,如下所示 if (request.readyState == 4 && request.status == 200) { ... } 我一直在使用合取条件信任,认为这两种情况都是独立的,在联系服务器时允许所有四种操作成功组合 昨天,我在想,我突然意识到我无法解释它们可能是什么。它们是什么 所有数据:readyState已完成(4),状态正常(200) 通信错误:ready
if (request.readyState == 4 && request.status == 200) { ... }
我一直在使用合取条件信任,认为这两种情况都是独立的,在联系服务器时允许所有四种操作成功组合
昨天,我在想,我突然意识到我无法解释它们可能是什么。它们是什么
if (request.readyState != 4 && request.status == 200) { ... }
或
您只关心请求完成且正常时的状态
您使用的语法是以下内容的简写:
if (request.readyState == 4) {
if (request.status == 200) { ... }
}
如果您使用的是现代浏览器,请考虑使用<代码> OnLoad 事件,而不是<代码> OnRead状态更改> /代码>。请求成功完成后,
onload
事件将触发,因此您无需检查readyState
。还有一个对应的onerror
事件。因此,如果request.status===200
仅在request.readyState==4
时才为真(我猜在此之前为null或未定义),那么仅检查第二个if子句是否足够?我缺少什么?status
在readyState
到达2
时将有一个值,因此您的谓词不正确。哦,这就是原因。谢谢我想我已经看到有人解释说在readyState达到值4之前不会设置状态。也许我误解了。非常感谢您的帮助=>+1!列出状态编号及其含义
if (request.readyState == 4) {
if (request.status == 200) { ... }
}