美文网首页H5^Study
AJAX学习:基础(发送请求)/readystatechange

AJAX学习:基础(发送请求)/readystatechange

作者: Merbng | 来源:发表于2019-05-09 18:33 被阅读0次

    readystatechange & readyState

    涉及到 AJAX 操作的页面“不能”使用文件协议访问(文件的方式访问)
    AJAX是一套API 核心提供的类型:XMLHttpRequest

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <script>
        // 涉及到 AJAX 操作的页面“不能”使用文件协议访问(文件的方式访问)
        //    AJAX是一套API 核心提供的类型:XMLHttpRequest
        var xhr = new XMLHttpRequest();
        xhr.open('GET', "./time.php");
        console.log(xhr.readyState);//1 open方法已调用,建立一个与服务端特定接口的连接
        xhr.send();
        //因为客户端永远不知道服务器何时才能返回我们需要的响应
        //所有AJAX API 采用事件的机制(通知的感觉)
        xhr.addEventListener("readystatechange", function () {
    
            switch (this.readyState) {
                case 2:
                    //已经接收到了响应报文的响应头
                    //可以拿到头
                    console.log(this.getAllResponseHeaders());
                    console.log(this.getResponseHeader("server"));
                    //但是拿不到请求体
                    console.log(this.responseText);
                    break;
                case 3:
                    //正在下载响应报文的响应体,有可能响应体为空,也可能不完整
                    //在这里处理响应体不保险(不可靠)
                    console.log(this.responseText);
                    break;
                case 4:
                    //一切ok,整个响应报文已经完整下载下来了
                    console.log(this.responseText);
                    break;
    
            }
    
    
    //    这个事件并不只在响应时触发,XHR 状态改变就触发
            if (this.readyState !== 4) return;
            console.log(this.responseText);
        });
    
    </script>
    </body>
    </html>
    

    相关文章

      网友评论

        本文标题:AJAX学习:基础(发送请求)/readystatechange

        本文链接:https://www.haomeiwen.com/subject/fyygoqtx.html