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 == ) {
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);
}

封装ajax方法的更多相关文章

  1. 原生JS封装ajax方法

    http://blog.sucaijiayuan.com/article/89 jquery框架的ajax方法固然好用,但是假如某天我们的项目不能引入jquery或项目需求很简单,没有很多交互功能,只 ...

  2. js jq封装ajax方法

    json文本格式 { "userInfo":[ {name:"admin",password:"123"}, {name:"adm ...

  3. 自已封装Ajax方法

    function createXHR() { var request; if (typeof (XMLHttpRequest) == 'undefined') { request = new Acti ...

  4. Ajax方法封装

    打算自己封装一个ajax方法,再不用jq库的情况下,直接引用: ajax作用:数据交互,在不刷新页面的情况下,发送请求,获取数据: 首页第一步常见一个ajax对象:XMLHttpRequest,之后会 ...

  5. 【前端学习笔记04】JavaScript数据通信Ajax方法封装

    //Ajax 方法封装 //设置数据格式 function setData(data){ if(!data){ return ''; } else{ var arr = []; for(k in da ...

  6. 类似jQuery的原生JS封装的ajax方法

    一,前言: 前文,我们介绍了ajax的原理和核心内容,主要讲的是ajax从前端到后端的数据传递的整个过程. Ajax工作原理和原生JS的ajax封装 真正的核心就是这段代码: var xhr = ne ...

  7. 封装一个类似jquery的ajax方法

    //封装一个类似jquery的ajax方法,当传入参数,就可以发送ajax请求 //参数格式如下{ // type:"get"/"post", // dataT ...

  8. js封装ajax的方法

    常用的ajax请求方法封装 /** * ajax请求的封装代码 */ function ajaxPost(url, params, cb) { $.ajax({ type : 'post', url ...

  9. JQuery封装ajax的方法

    1.$.post方法 $.post(url[,data][,callback][,type]) url:请求的后台程序地址 data:发送到后台的数据 callback:载入成功时回调函数,该函数参数 ...

随机推荐

  1. 全面解析JavaScript的Backbone.js框架中的Router路由

    这篇文章主要介绍了Backbone.js框架中的Router路由功能,Router在Backbone中相当于一个MVC框架中的Controller控制器功能,需要的朋友可以参考下. Backbone ...

  2. 剑桥offer(11~20)

    11.题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. class Solution { public: int NumberOf1(int n) { ; unsigned ...

  3. select2 全拼以及首字母

    转自:https://blog.csdn.net/kanhuadeng/article/details/78475317 具体实现方法为: 首先需要在网上下载select2的源码,并引入到项目中,具体 ...

  4. 洛谷P3178 [HAOI2015]树上操作(dfs序+线段树)

    P3178 [HAOI2015]树上操作 题目链接:https://www.luogu.org/problemnew/show/P3178 题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边 ...

  5. G. Trace ACM-ICPC 2018 徐州赛区网络预赛 线段树写法

    There's a beach in the first quadrant. And from time to time, there are sea waves. A wave ( xx , yy  ...

  6. Stars POJ - 2352

    Astronomers often examine star maps where stars are represented by points on a plane and each star h ...

  7. [iptables]iptables日志记录

    Mar :: kernel: [:] IN=eth1 OUT= MAC=f0:1f:af:da:6f:1e::fb::ae:fa::: SRC= TOS= ID= DF PROTO=TCP SPT= ...

  8. bzoj1177 [Apio2009]Oil 二维前缀最大值,和

    [Apio2009]Oil Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 2300  Solved: 932[Submit][Status][Disc ...

  9. 008.C++类改写模板类

    1.普通类 //class head class complex //class body {} { public: complex(, double i) :re(r), im(i) {}//构造函 ...

  10. [freemarker篇]06.超级强大的自定义指令

    Freemarker的自定义指令是很强大的,非常强大,在之后的教程中我会简单的做一个示例,让大家对其有所了解!如果做Freemarker编程,请好好看看API手册,可以说里面的内容很多!也是一门独立的 ...