首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >readyState vs status==200

readyState vs status==200
EN

Stack Overflow用户
提问于 2013-07-10 10:18:37
回答 9查看 88.1K关注 0票数 39
代码语言:javascript
复制
xmlhttp.onreadystatechange = function()
{
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
    {
        document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
    }
}

上面的代码来自:http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp

问题:

根据本教程:

代码语言:javascript
复制
readyState: 4: request finished and response is ready 

status: 200: "OK" 

When readyState is 4 and status is 200, the response is ready:

既然xmlhttp.readyState == 4,response已经准备好了,为什么我们还需要xmlhttp.status == 200呢?xmlhttp.readyState == 4xmlhttp.status == 200之间的区别是什么

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2013-07-10 10:27:13

响应的状态xhr.status (通常)用于确定请求是否成功。xhr.readyState只是用来判断请求的状态,比如“尚未发送”(0)、“完成并收到响应”(4)等。

服务器负责提供status,而用户代理提供readyState

票数 47
EN

Stack Overflow用户

发布于 2013-07-10 10:26:15

状态指示服务器响应是否正常。

总而言之,当你得到一个状态时

500 - 599:服务器出现错误

400 - 499:这是一个客户端错误(例如:找不到404页)

300 - 399:随后存在重定向

200 - 299:,那么它是正确的

100 - 199:表示信息消息

然后status==200会给你一条消息,服务器会说:‘嘿,伙计,我来做工作!’

票数 26
EN

Stack Overflow用户

发布于 2014-09-29 01:55:12

我的类比是:一辆载着病人的急救车要去hospital.In,这种情况下,家庭(客户端)和医院(服务器)需要跟踪两件事

在此process.(status)期间,

  • 急救队到达了患者的医院successfully.(readyState)
  • Health更新

如果是readyState === 4status === 200,意味着一切都是right.In,就像ajax调用一样。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17561463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档