日期:2014-05-17  浏览次数:20561 次

使用原始的ajax异步程序出现的的错误
初学ajax时间不长,现在用xmlhttprequest对象遇到个问题。在判断request.readyState==4 && request.states==200的时候出现错。先把代码贴出来大家看看哪里有错误。

<script type="text/javascript">
        var request = createXMR();
        function createXMR() {
            var xmr;
            if (window.XMLHttpRequest) {
                xmr = new XMLHttpRequest();
            }
            else {
                xmr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            return xmr;
        }

        function send() {
            document.getElementById("d1").innerHTML = "数据加载中...";
            request.open("get", "01.ashx", true);

            request.onreadystatechange = function () {
                if (request.readyState == 4 && request.states == 200) {
                    var data = request.responseText;
                    document.getElementById("d1").innerHTML = data;
                }
                else {
                    document.getElementById("d1").innerHTML = "服务器内部错误";
                }
            }
            request.send();
        }
    </script>



<input type="button" value="get" onclick="send()" />
    <div id="d1">

    </div>



正确情况下,应该是直接返回当前服务器的时间,但是却提前“服务器内部错误”,但当把request.states==200去掉,就可以正常显示了。但就是应该判断request.readyState==4 && request.states==200同时为真时才执行后面的语句的吗?代码哪里有问题吗?