为什么当我使用XMLHttpRequest发送GET请求时,我得到两个readyState 1?

时间:2013-01-22 02:55:54

标签: javascript ajax xmlhttprequest

<div id="myDiv"></div>
<script>                    
    var xmlhttp = new XMLHttpRequest();
    document.getElementById("myDiv").innerHTML += xmlhttp.readyState + "<br/>";
    xmlhttp.onreadystatechange = function() {
        document.getElementById("myDiv").innerHTML += xmlhttp.readyState + "<br/>";
    }
    xmlhttp.open("GET", "example.com", true);
    xmlhttp.send();
</script>

我明白了:

0
1
1
2
3
4

为什么有两个1?

我的浏览器是firefox 17.0。

1 个答案:

答案 0 :(得分:1)

为XML HTTP对象定义了就绪状态:https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#Properties

但是每个浏览器的就绪状态序列似乎都不同,因此您不能依赖代码中的特定状态序列。

FF 19: 0, 1, 1, 2, 3, 4

Chrome 24: 0, 1, 2, 3, 4

Opera 12.12: 0, 1, 2, 3, 4

Safari 5.1: 0, 1, 2, 3, 4

IE 9: 0, 1, 1, 2, 3, 4

您可以测试浏览器here