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) {
//自己的处理逻辑
});
Javascript 封装 Jquery的Ajax方法
最新推荐文章于 2021-08-05 15:10:59 发布