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. responseBody注解可以直接返回字符串 && springMVC Controller get请求返回字符串是中文乱码解决

    //获取商品描述信息(html片段)字符串返回给前台填充html @RequestMapping(value="/item/desc/{itemId}",produces=Medi ...

  2. Codeforces Round #337 (Div. 2) A水

    A. Pasha and Stick time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  3. ReentrantLock和synchronized区别和联系?

    相同:ReentrantLock提供了synchronized类似的功能和内存语义,都是可重入锁. 不同: 1.ReentrantLock功能性方面更全面,比如时间锁等候,可中断锁等候,锁投票等,因此 ...

  4. Google新出品的数据格式:Protocol Buffer

    转:http://blog.csdn.net/carson_ho/article/details/70037693

  5. Leetcode 138. 复制带随机指针的链表

    1.题目要求 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点. 要求返回这个链表的深度拷贝. 2.解题思路 (1)笔试思路(求速度,拿分数):使用哈希表 /* ...

  6. sql 建表以及查询---复杂查询之成绩排名

    废话不说,直接建表 1.表Player USE T4st -- 设置当前数据库为T4st,以便访问sysobjects IF EXISTS(SELECT * FROM sysobjects WHERE ...

  7. RabbitMQ的使用总结

    RabbitMQ介绍 说明: Consumer (消费者):使用队列 Queue 从 Exchange 中获取消息的应用. Exchange (交换机):负责接收生产者的消息并把它转到到合适的队列. ...

  8. Struts2.X深入浅出 学习笔记

    第一节.MVC以及Struts2简介 第二节.Action生命周期以及接收表单数据 第三节.Struts2配置以及Struts.xml详解 Struts2 主要配置文件 Web.xml 设置过滤器以及 ...

  9. jQuery拖拽 & 弹出层

    了解更多请查看 官网 和 API iDrag & iDialog 介绍 特点: iDialog.js依赖于jquery编写的简单易用的对话框,同时还可以通过添加css3,改变对话框的展现动画. ...

  10. 【NOIP】提高组2013 火柴排队

    [题意]两列n个火柴,分别有高度ai和bi(同一列高度互不相同),每次可以交换一列中的两个相邻火柴,定义距离为∑(ai-bi)^2,求使距离最小的最少交换次数,n<=10^5. [算法]逆序对 ...