创建ajax的过程

本文详细介绍了如何使用JavaScript的XMLHttpRequest对象进行AJAX请求,包括创建请求、设置参数、发送请求以及处理响应状态。特别关注了GET和POST请求的区别,以及readyState和status的状态码含义。
摘要由CSDN通过智能技术生成

得分点

        new XMLHttpRequest()、设置请求参数open()、发送请求request.send()、响应request.onreadystatechange

标准回答

        创建ajax过程:

  1.   创建XHR对象:new XMLHttpRequest()
  2.  设置请求参数:AJAX.open(‘get’,根目录,true) get是获取方式,true是异步进行,false是同步进行
  3.   发送请求: request.send(),如果是get请求不需要参数,post请求需要参数request.send(data)
  4.  监听请求成功后的状态变化:根据状态码进行相应的处理。 XHR.onreadystatechange = function () { if (XHR.readyState == 4 && XHR.status == 200) { console.log(XHR.responseText); // 主动释放,JS本身也会回收的 XHR = null; } };
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button id="btn">点击发送ajax请求</button>
    <script>
        const btn = document.querySelector('#btn')

        btn.addEventListener('click', function () {
            const p = new Promise((reslove, reject) => {
                //1.创建对象
                const xhr = new XMLHttpRequest();
                //2.初始化
                xhr.open('GET', 'https://api.apiopen.top/getJoke');
                //3.发送
                xhr.send();
                //4.处理响应结果
                xhr.onreadystatechange = function () {
                    if (xhr.readyState === 4) {
                        //判断响应状态码2xx
                        if (xhr.status >= 200 && xhr.status < 300) {
                            //控制台输出响应码
                            reslove(xhr.response)
                        } else {
                            //控制台输出响应状态码
                            reject(xhr.status)
                        }
                    }
                }
            })
            p.then(value=>{
                console.log(value);
            },reason=>{
                console.log(reason);
            })


        })
    </script>
</body>

</html>

加分回答

        POST请求需要设置请求头 readyState值说明

                0:初始化,XHR对象已经创建,还未执行open

                1:载入,已经调用open方法,但是还没发送请求

                2:载入完成,请求已经发送完成                 

                3:交互,可以接收到部分数据

                4:数据全部返回

        status值说明

                200:成功

                404:没有发现文件、查询或URl

                500:服务器产生内部错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值