ajax封装

jquery 记得引入

封装代码:

var ajaxObj = {
        config:{
            type: 'POST',
            timeout: 20000, //默认超时时间
            token:sessionStorage.getItem("token") || ""  //登录的时候把token存一下
        },
        do: function (opt) {
            var that = this;
            var url = opt.url,
            type = opt.type || that.config.type,
            timeout = opt.timeout || that.config.timeout,
            // 数据
            data = opt.data || {},
            
            // ajax生命周期
            beforeSend = opt.beforeSend,
            success = opt.success,
            error = opt.error,
            complete = opt.complete;

            // 数据默认携带token
            data.token = that.config.token;

            var __ajax = $.ajax({
                type: type,
                url: url,
                data: data,
                timeout: timeout,
                beforeSend: function(xhr) {
                    typeof beforeSend == 'function' && beforeSend(xhr)
                },
                success: function (res) {
                    if (res.code == 00) { //状态码,服务的返回结果集code为00  表示成功

                        typeof success == 'function' && success(res)

                    } else if (res.code == 01) {

                        alert("code:" + res.code + "," + res.message)
                        
                    } else {
                        
                        alert("请联系管理员!!!");
                    }
                },
                error: function () {

                    typeof error == 'function' && error() || alert(res.message || "网络跑丢了哦!!!");
                    
                },
                complete: function (XMLHttpRequest, status) { //请求完成后最终执行参数
                    if (status == 'timeout') { //超时,status还有success,error等值的情况
                        __ajax.abort();

                        typeof complete == 'function' && complete(XMLHttpRequest, status) || alert('请求超时,请稍后再试!')

                    }
                }
            });
        }
    };
 
    
    //调用
    ajaxObj.do({
        type:'POST', // 默认为POST  非必填项
        url: 'url', // 必传
        data: dataObj,  //如果只传token  这行可以删除  非必填项
        timeout: ‘timeout’, //默认20000毫秒   非必填项
        beforeSend:function(xhr){ //实际开发过程中没有用到这个回调可以不写,下面的也一样
//          发送前
        }
        success:function(v){
//          v为后台返回结果集
        },
        error:function(){
            
        },
        complete:function(XMLHttpRequest, status){
            
        },
    })

 

 

有用到模块化框架啥的可以直接把ajaxObj 这个对象导出去

alert()  可以换成 你们框架自带的比较好看友好,比如layui的弹出层  layui.msg(res.msg || "提示消息")

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jQuery的ajax封装主要分为三个步骤。首先,需要引入jQuery库。然后,通过代码实例来讲解。最后,根据代码注释来理解封装过程。 具体来说,封装的步骤如下: 1. 第一步:引入jQuery库。用户需要在页面中引入jQuery的库文件,可以通过以下方式引入: ``` <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> ``` 这样就可以在页面中使用jQuery的功能了。 2. 第二步:使用jQuery的ajax方法进行封装。用户可以通过以下代码将ajax请求进行封装: ``` $('#id').click(function(){ $.ajax({ url: "http://localhost:3000/ind", type: "post/get", data: $('form').serialize(), dataType: 'json', success: function(result){ // 请求成功后的回调函数,result中存放的是服务器的响应数据 }, error: function(err){ console.log(err); } }); }); ``` 在这段代码中,通过给一个元素绑定点击事件,当该元素被点击时,发起ajax请求。可以根据实际需求,修改url、type、data等参数来满足不同的请求。 3. 第三步:高层封装。除了使用jQuery的ajax方法,还可以使用高层封装的post请求实现简洁的代码,代码如下: ``` $.post(url, [data], [callback], [type]); ``` 其中,url是请求的地址,data是待发送的参数,callback是请求成功后的回调函数,type是返回内容的格式。 综上所述,jQuery的ajax封装通过引入jQuery库、使用ajax方法进行封装以及高层封装来实现。这样可以简化代码,提高开发效率。同时,原生的Ajax也是一种封装方式,可以使用XMLHttpRequest对象来发送异步请求,通过open方法建立与服务器的连接,设置请求头信息,然后通过send方法向服务器发送请求,并通过onreadystatechange事件监听请求-响应状态的改变,并将响应信息写入页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值