封装ajax方法

代码吟游使
• 阅读 125
 function ajaxRequest(type, url, data, callback, loading, cache) {
    var ajaxConfig = {
        url: '',
        data: {},
        callback: null,
        loading: true,
        cache: true,
        async: true
    };
    // 判断每一个参数url的类型
    // 如果是对象则是请求参数对象
    // 如果是字符串则是请求URL,参数和回调要继续检测后面的参数
    if (typeof url === 'string') {
        ajaxConfig.url = url;
        ajaxConfig.data = data;
        ajaxConfig.callback = callback;
        ajaxConfig.loading = typeof(loading) === 'undefined' ? true : loading;
        ajaxConfig.cache = cache;
    } else {
        ajaxConfig = $.extend({}, ajaxConfig, url);
    }
    $.ajax({
        type: type,
        url: ajaxConfig.url,
        data: ajaxConfig.data,
        beforeSend: function() {
            if (ajaxConfig.loading) { $.showLoading(); }
        },
        dataType: 'json',
        cache: ajaxConfig.cache,
        async: ajaxConfig.async,
        success: function(re) {
            if (ajaxConfig.loading) { $.hideLoading() };
            if (re.result == 1) {
                if (re.msg != '') {
                    $.toast(re.msg, function() {
                        if (re.redirect) {
                            window.location.href = re.redirect;
                        } else {
                            ajaxConfig.callback(re.data);
                        }
                    });
                } else {
                    ajaxConfig.callback(re.data);
                }
            } else {
                $.toast(re.msg, 'forbidden');
            }
        },
        error: function(re) {
            ajaxConfig.loading && $.hideLoading();
            $.toast("Error", "forbidden");
            console.error(re.responseText);
        }
    })
}
function ajaxGet(url, data, callback, loading) {
    ajaxRequest('get', url, data, callback, loading, true);
}
function ajaxPost(url, data, callback, loading) {
    ajaxRequest('post', url, data, callback, loading, false);
}

 
转载于猿2048:➥《封装ajax方法》

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Stella981 Stella981
3年前
JFinal使用笔记5
1、前台代码$.ajax({type:"POST",url:"/activity",dataType:"json",success:function(data){alert("success");conso
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Easter79 Easter79
3年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Wesley13 Wesley13
3年前
oracle 所有表字段 注释
SELECT ATC.OWNER,       ATC.TABLE_NAME,       UTC.COMMENTS,       ATC.COLUMN_NAME,       ATC.DATA_TYPE,       ATC.DATA_LENGTH,       ATC.NULLABLE,
Stella981 Stella981
3年前
Es6获取数据
$(function(){$.ajax({//请求方式type:"GET",//文件位置url:"js/data.json",//返回数据格式为json,也可以是其他格式如dataType:"json",//请求成功后要执行的函数,拼接htmlsuccess:function(res){var
Stella981 Stella981
3年前
Post 方式进行文件下载
不啰嗦了,直接上代码,依赖jquery,下面代码可以直接复制到你的项目作为公共方法前端封装代码,作为公共方法://postDownload.js/下载文件,以POST的方式提交@paramoptions{url,data}使用方式postDownload({
飞鹅官方账号 飞鹅官方账号
11个月前
五、飞鹅官网API接口文档
接口列表1.获取网站信息请求方法:GET请求URL:/api/site/getSiteInfo请求参数无返回结果json"code":1,"data":"id":1,//id"title":"SampleSiteName",//网站名称"intro":"T