文档章节

封装使用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
博文 264
码字总数 40947
作品 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
PHP判断一个请求是Ajax请求还是普通请求

Javascript中大多数的框架如 jquery(jquery ui、jquery easyui)、Mootools 等,在发出 Ajax 请求时,都会发送额外的 HTTPXREQUESTED_WITH 头部信息,因此每当发送一个ajax请求你就可以在服务...

Junn
2013/08/05
0
1
jQuery零基础入门——(八)AJAX

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 用JavaScript写AJAX前面已经介绍...

JandenMa
08/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ConcurrentHashMap 高并发性的实现机制

ConcurrentHashMap 的结构分析 为了更好的理解 ConcurrentHashMap 高并发的具体实现,让我们先探索它的结构模型。 ConcurrentHashMap 类中包含两个静态内部类 HashEntry 和 Segment。HashEnt...

TonyStarkSir
今天
3
0
大数据教程(7.4)HDFS的java客户端API(流处理方式)

博主上一篇博客分享了namenode和datanode的工作原理,本章节将继前面的HDFS的java客户端简单API后深度讲述HDFS流处理API。 场景:博主前面的文章介绍过HDFS上存的大文件会成不同的块存储在不...

em_aaron
昨天
2
0
聊聊storm的window trigger

序 本文主要研究一下storm的window trigger WindowTridentProcessor.prepare storm-core-1.2.2-sources.jar!/org/apache/storm/trident/windowing/WindowTridentProcessor.java public v......

go4it
昨天
6
0
CentOS 生产环境配置

初始配置 对于一般配置来说,不需要安装 epel-release 仓库,本文主要在于希望跟随 RHEL 的配置流程,紧跟红帽公司对于服务器的配置说明。 # yum update 安装 centos-release-scl # yum ins...

clin003
昨天
9
0
GPON网络故障处理手册

导读 为了方便广大网络工作者工作需要,特搜集以下GPON网络处理流程供大家学习参考。开始—初步定为故障—检查光纤状况—检查ONU状态--检查设备运行状态—检查设备数据配置—检查上层设备状态...

问题终结者
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部