Javascript 封装 Jquery的Ajax方法

commons = {
	/**
	 * 发送POST ajax
	 * @param url
	 * @param param
	 * @param successFunction 成功调用的方法
	 * @param errorFunction 失败调用的方法
	 * @param resultDataType 返回结果数据类型(默认是JSON):
	 *        "xml": 返回 XML 文档,可用 jQuery 处理。
	 *        "html": 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。
	 *        "script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数。'''注意:'''在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)
	 *        "json": 返回 JSON 数据 。
	 *        "jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
	 *        "text": 返回纯文本字符串
	 * @param async 是否是异步访问
	 * @return XMLHttpRequest
	 */
	ajaxPost: function (url, param, successFunction, errorFunction, resultDataType, async) {
		if (commons.isEmpty(resultDataType)) {
			resultDataType = 'JSON';
		}
		if (commons.isEmpty(async)) {
			async = true;
		}
		return $.ajax({
			type: 'post',
			url: url,
			data: param,
			async: async,
			dataType: resultDataType,
			success: function (data) {
				//执行回调匿名函数,并传参数
				try {
					if (commons.isNotEmpty(successFunction)) {
						$(successFunction(data));
					}
				} catch (e) {
					console.error(e);
					commons.loadingHide();
				}
			},
			error: function (XMLHttpRequest, textStatus, errorThrown) {
				commons.loadingHide();
				switch(XMLHttpRequest.status) {
					case 403:
						commons.alert("没有权限操作,请联系管理员", commons.warning);
						break;
					case 401:
					case 504:
						commons.alert("会话失效,请重新登录", commons.warning, function () {
							commons.loadingShow();
							location.reload();
						});
						return;
					default:
						console.log(errorThrown);
				}
				//执行回调匿名函数,并传参数
				try {
					if (commons.isNotEmpty(errorFunction)) {
						$(errorFunction(XMLHttpRequest, textStatus, errorThrown));
					}
				} catch (e) {
					console.error(e);
				}
			}
		});
	}
}


//使用IDEA开发,可以直接通过commons.出来,开发方便,不用去记那么多参数配置。
//用法:
var param = {
	userId: 1
};
commons.ajaxPost(url, param , function (data) {
	//自己的处理逻辑
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值