原生JS实现Ajax

Posted 师兄白泽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生JS实现Ajax相关的知识,希望对你有一定的参考价值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var xhr = null;
        if(window.XMLHttpRequest)
            xhr = new XMLHttpRequest();
        else
            xhr = new ActiveXObject('Microsoft.XMLHttp');
        
        // 对象刚创建时
        console.log(xhr.readyState);//0
        /**
         * param1 请求方式 此处为get
         * param2 请求地址 
         * param3 true异步 false同步
         */
        xhr.open("get","http://developer.duyiedu.com/edu/testAjaxCrossOrigin",true);
        // 请求发送前
        console.log(xhr.readyState);//1
        xhr.send();//一般来说会把这句放到ajax最后,防止代码出错。
									//如果open的第三个参数传true为异步模式。如果传递参数为false为同步模式
        // 请求发送后
        console.log(xhr.readyState);//1

        // 当readystate变化时打印
        xhr.onreadystatechange = function()
            console.log(xhr.readyState);//2 3 4
            //状态4表示请求已经完成,已经接收到数据
            // status = 200表示请求成功 status为http状态码
            // 200 请求成功 2开头的为成功
            // 3** 表示重定向
            // 4** 表示客户端错误 404 页面未找到
            // 5** 表示服务端错误
            if(xhr.readyState == 4 && xhr.status == 200)
                // 输出返回的数据
                console.log(xhr.responseText);
                document.getElementById('text').innerText = xhr.responseText;
                var jsonStr = JSON.parse(xhr.responseText);
                console.log(jsonStr.msg);
                document.getElementById('jsonStr').innerText = jsonStr.msg;
            
        
    </script>
    <div id="text"></div>
    <div id="jsonStr"></div>
</body>
</html>

以上是关于原生JS实现Ajax的主要内容,如果未能解决你的问题,请参考以下文章

原生JS实现Ajax

js原生实现ajax

原生js实现ajax

原生js实现Ajax

原生js实现Ajax

用原生JS实现AJAX和JSONP