【问题标题】:What is meaning of xhr.readystate===4xhr.readystate===4 是什么意思
【发布时间】:2015-08-11 21:44:49
【问题描述】:

AJAX调用在xhr.readystate===4之后完成是否正确?
Here它说状态是complete。那么这个complete 是什么意思呢?

【问题讨论】:

    标签: javascript jquery ajax


    【解决方案1】:

    是的,没错。xhr.readstate===4 表示请求已完成,响应已准备好。详情可以参考this

    这是一个小例子:

    xmlhttp.open("GET", "test.txt", true);
     xmlhttp.onreadystatechange = function() {
         if(xmlhttp.readyState==4) {
             alert(xmlhttp.responseText);
         }
     }
     xmlhttp.send(null);
    

    上面的脚本对相对url“text.txt”(相对于调用页面)发出GET请求加载完成后,它会向用户显示 responseText 并发出警报。

    Source

    【讨论】:

    • 您的链接无效。但如果有更好的来源,例如问题本身的链接,请避免推荐 w3schools.com。
    【解决方案2】:

    一个 Ajax http 请求有 5 个状态作为您的参考文档:

    0   UNSENT  open() has not been called yet.
    1   OPENED  send() has been called.
    2   HEADERS_RECEIVED    send() has been called, and headers and status are available.
    3   LOADING Downloading; responseText holds partial data.
    4   DONE    The operation is complete.
    

    状态 4 表示请求已发送,服务器已完成返回响应,浏览器已完成下载响应内容。 所以,说 AJAX 调用已经完成是对的。

    【讨论】:

    • 再一次,对于没有歧义的操作数使用 === 是绝对没用的,比如 4。4 永远不能是空字符串,或者 null,或者 0。4 是 4...
    猜你喜欢
    • 2018-07-17
    • 2014-08-09
    • 1970-01-01
    • 2012-07-31
    • 2019-12-22
    • 2020-07-05
    • 1970-01-01
    • 2018-04-02
    • 2018-09-07
    相关资源
    最近更新 更多