文档章节

封装使用jQuery的$.ajax

L
 LM_Mike
发布于 2017/04/26 14:25
字数 302
阅读 1
收藏 0

直接上代码,因为项目中使用了封装jQuery的$.ajax,代码如下

/**增加$.ajax的功能,对固定格式接口的结果进行预处理
 * 通过调用$$.ajax,拥有$.ajax的全部功能和参数,
 * 但success方法的参数变更为返回结果json中的data部分,只要返回结果的resultCode!=1,都将调用error(code,message,data)参数。
 * error的三个参数,当resultCode大于1时,code对应resultCode,message对应resultMessage,第三个参数为空。
 * 当data.data.errorCode存在时,code 对应data中的errorCdoe,message对应data中的errorMessage,data对应data。
 * 此外,对于resultCode == 0的情况,可以额外定义inCase(code,message,data)函数进行处理。如果定义了inCase函数,则error函数不会再处理resultCode==1,但有data.data.errorCode的结果。
 * 
 */
var $$={ajax:function(options){
	if(options.autoJson!=false&&options.success){
		var success= options.success;
		var error = options.error;
		var inCase = options.inCase;
		options.success=function(data){
			if(data.resultCode == undefined && typeof data == "string"){
				try{
					data = eval("("+data+")");
				}catch(e){
					console.log(e);
					return success(data);
				}
			}
			
			if(data.resultCode == 1){
				if(data.data && data.data.errorCode){ 
					if(inCase){
						inCase(data.data.errorCode,data.data.errorMessage,data.data);
					}else{
						if(error)
							error(data.data.errorCode,data.data.errorMessage,data.data);
					}
				}else{
					success(data.data,data.timestamp);
				}
			}else if(data.resultCode == 2000){
				console.log("登录超时,需要重新登录!");
				sessionStorage.clear();
				location.href = base+"pages/index.html";
				return;
			}
			if(data.resultCode !=1){  //resultCode == 1002,1003等情况
				if(error)
					error(data.resultCode,data.errorMessage);
			}
				
			
		}
	}
	return $.ajax(options);
}};

© 著作权归作者所有

共有 人打赏支持
L
粉丝 1
博文 269
码字总数 41374
作品 0
深圳
私信 提问
jQuery常用知识点总结以及平时封装常用函数

jquery效果 隐藏/显示: 淡入/淡出: 滑动:slideDown/slideUp(speed,callback) 动画: jQuery DOM 获取文本值、属性值: js代码: 设置文本属性值: js代码: 添加元素: 删除元素: 查找元...

heartless01
2017/10/31
0
0
学习jQuery首先要了解的概念

1.jQuery:是js的一个高级的封装库,它有强大易用的选择器,隐形的迭代,出色的DOM对象封装,等等 2.DOM对象与jQuery对象:xml中标签的层次构成树形,每个节点标签都是一个DOM对象,可以用j...

沉默狮
2014/12/15
0
0
javascript实现原生ajax的几种方法

自从js有了各种框架之后,比如jquery,使用ajax已经变的相当简单了。但有时候为了追求简洁,可能项目中不需要加载jquery这种庞大的js插件。但又要使用到ajax这种功能该如何办呢?下面和大家分...

BearCatYN
2015/06/04
0
1
jQuery、ajax、JSON

最近在做项目的过程中,对于jQuery、ajax、JSON这三者的关系总是理不清楚,于是,在简单是使用,有了丁点的经验,于是对这三者的关系做了下研究: 1、jQuery : 以下来自百度百科 jQuery是一个...

伊人心
2018/12/28
0
0
js、jquery、ajax的关系,求解释

jquery貌似是对js的一种封装,ajax是一种技术,可以通过jquery来实现,jquery有几种异步方式:$.post、$get、$getJSON、$ajax,这几种异步方法的区别和优势在哪里?$ajax是、这个异步方法是不...

上帝爱众生
2015/10/12
425
3

没有更多内容

加载失败,请刷新页面

加载更多

自定义线程池

自定义线程工厂: public class CustomThreadFactory implements ThreadFactory { private static final Logger LOGGER = LoggerFactory.getLogger(CustomThreadFactory.class); pu......

hensemlee
20分钟前
1
0
【剑指offer纪念版】-- 面试题目录

2.实现Singleton模式 3.二维数组中的查找 4.替换空格 5.从尾到头打印链表 6.重建二叉树 7.用两个栈实现队列 8.旋转数组的最小数字 9.斐波那契数列 【剑指offer纪念版】--9 斐波那契数列 10.二...

细节探索者
32分钟前
1
0
记一次oom内核优化记录:vm.lower_zone_protection

情景 最近gitlab服务会偶发性500,当前机器部署了gitlab、nfs等服务,经过排查发现是nfsd引发oom,导致系统运行不畅。处理过程如下: 事故现场 开发在使用gitlab的时候发现,偶发性的出现500...

阿dai
今天
4
0
Spring Batch JSON 支持

Spring Batch 4.1 开始能够支持 JSON 格式了。这个发布介绍了一个新的数据读(item reader)能够读取一个 JSON 资源,这个资源按照下面的格式: [  {    "isin": "123",    ...

honeymose
今天
0
0
浏览器缓存

HTTP缓存类型 200 from cache:直接从本地缓存获取响应,可细分为from disk cache, from memory cache 304 Not Modified:协商缓存,本地未命中发送校验数据到服务端,如果服务端数据没有改变,则读...

关元
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部