Ajax的封装及demo

一.定义

html

<body>
    <script>
        // ajax的最基本封装

        // 将 get请求方式 和 post请求方式 封装为两个函数
        function getAjaxSend(url , cb){
            // 1,创建ajax实例化对象
            const xhr = new XMLHttpRequest();

            // 2,设定ajax请求信息
            // 不需要定义请求的参数,直接拼接在url之后就可以了
            xhr.open('get' , url);

            // 3,发送请求
            xhr.send();

            // 4,接收相应
            xhr.onload = function(){
                // 调用参数函数,执行内容是响应体
                cb(xhr.response);
            }
        }


        // post请求方式
        // 要比get方式,多设定一个请求头
        // 还要多设定一个请求参数的数据
        function postAjaxSend(url , cb , dataStr){
            // 1,创建ajax实例化对象
            const xhr = new XMLHttpRequest();

            // 2,设定ajax请求信息
            xhr.open('post' , url);

            // post方式,必须要设定请求头
            xhr.setRequestHeader('content-type' , 'application/x-www-form-urlencoded');

            // 3,发送请求
            xhr.send(dataStr);

            // 4,接收相应
            xhr.onload = function(){
                // 调用参数函数,执行内容是响应体
                cb(xhr.response);
            }
        }

    </script>

以下两个案例中公用的utils.js

js

// 定义一个js外部文件
// 存储各种要使用的函数
// 将来通过外部文件的形式,来加载js文件,执行js函数


// 设定cookie函数

function mySetCookie(key,value,time){
    // JavaScript中,时间单位默认是毫秒
    // 获取当前时间对象
    const nowTime = new Date();
    // 当前时间的时间戳和服务器时间,有8个小时的时差 -8小时的毫秒数
    // 设定cookie时效时间 + 时间的毫秒数
    let t = nowTime.getTime() - (8*60*60*1000) + time*1000;
    // 将新的时间戳,设定给 时间对象
    nowTime.setTime(t);
    // 通过三元运算符,给 expires 赋值 如果没有时间参数,赋值空字符串,有时间参数,赋值时间对象
    document.cookie = `${key}=${value};expires=${time === undefined ? '' : nowTime }`;
}

// 获取cookie函数

function myGetCookie(cookieStr){
    const obj = {};
    const arr1 = cookieStr.split('; ');
    arr1.forEach((item)=>{
        const newArr = item.split('=');
        obj[newArr[0]] = newArr[1];
    })
    return obj;
}


// get方式,ajax请求

function getAjaxSend(url , cb ){
    // 1,创建ajax实例化对象
    const xhr = new XMLHttpRequest();

    // 2,设定ajax请求信息
    // 如果有参数,可以直接拼接,写在url中
    xhr.open('get' , url);

    // 3,发送请求
    xhr.send();

    // 4,接收相应
    xhr.onload = function(){
        // 调用参数函数,执行内容是响应体
        cb(xhr.response);
    }
}



// post方式,ajax请求

function postAjaxSend(url , cb , dataStr){
    // 1,创建ajax实例化对象
    const xhr = new XMLHttpRequest();

    // 2,设定ajax请求信息
    xhr.open('post' , url);

    // post方式,必须要设定请求头
    xhr.setRequestHeader('content-type' , 'application/x-www-form-urlencoded');

    // 3,发送请求
    xhr.send(dataStr);

    // 4,接收相应
    xhr.onload = function(){
        // 调用参数函数,执行内容是响应体
        cb(xhr.response);
    }
}

二.ajax_fun_demo1

在这里插入图片描述

三.ajax_fun_demo2

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值