必威体育Betway必威体育官网
当前位置:首页 > IT技术

关于ajax中的onreadystatechange

时间:2019-11-05 06:44:41来源:IT技术作者:seo实验室小编阅读:82次「手机版」
 

onreadystatechange

先铺垫一下知识:

readystate 属性存有 XMLHttprequest 的状态信息,也就是代表着请求数据的过程,是由0~4代表,具体见(onreadystatechange)

status:跟readystate一起变化的属性,200表示成功,404表示未找到页面,还有很多其他的值表示不同的问题

只要readystate变化,就会触发onreadystatechange方法

我们先看一个例子:

<html>

<head>

    <script type="text/javascript">  
        function loadXMLDOC(url,cfunc) {
            if (window.XMLHttpRequest) {
                xmlhttp = new XMLHttpRequest();
            }
            else {
                xmlhttp = new ActiveXObject("microsoft.xmlhttp");
            }
            xmlhttp.onreadystatechange=cfunc;
            xmlhttp.open("GET",url,true);
            xmlhttp.send();
        }
        function parseXML() {
           loadXMLDOC("demo.txt",function(){
               console.log(xmlhttp.status);
               if(xmlhttp.readyState==4&&xmlhttp.status==0){
                xmlDoc = xmlhttp.responsetext;
                console.log(xmlDoc);
                document.getElementsByTagName("p")[0].innerHTML=xmlDoc;
               }
           });
        }  
    </script>
</head>

<body onload="parseXML()">
    <h1>W3School.com.cn Internal Note</h1>
    <p style="width: 100px;height: 100px;"></p>
    <button type="button" onclick="parseXML()">la</button>
</body>

</html>

所以我们这个例子中的onreadystatechange需要赋值一个函数,为什么我们的判断语句里面是写着status==0而不是200呢,因为:

如果在本地运行(如:C:\\ajax\\ helloworld.htm),那么status属性不管是在”成功”还是”页面未找到”的情况下,都返回的是0。
也就是说没有通过Web服务器形式的Ajax请求返回值都是0;

也就是我们的demo.txt是本地文件,ajax请求根本就没有通过服务器,所以status的值只能是0

并且我们在这个例子中封装了一个loadeXMLDOC方法,里面的参数可以更好的实现ajax请求

文章最后发布于: 2018-08-28 13:56:15

相关阅读

onreadystatechange 事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务。 每当 readyState 改变时,就会触发 onreadystatechange 事件。 readySta

分享到:

栏目导航

推荐阅读

热门阅读