/*统一ajax请求接口封装 * 创建人zhoulei 时间:2019年9月2日17:26:40 * type请求类型 post || get * url请求地址,必传项 * param请求的参数,默认传对象的形式 * isAsync是否异步加载 * isShowLoader是否显示加载动画 * dataType请求参数类型,默认json形式 * callBack请求成功的回调函数,必传项 * */ Tools.ajaxRequest = function (opts) { var type = opts.type || "get"; var url = opts.url; var param = opts.param || {}; var isShowLoader = opts.isShowLoader || false; var isAsync = opts.async === false ? false : true; var dataType = opts.dataType || "json"; var contentType = opts.contentType || "application/x-www-form-urlencoded;charset=utf-8"; var callBack = opts.callBack; var completeBack = opts.completeBack; $.ajax({ type: type, url: url, data: param, async: isAsync, dataType: dataType, contentType: contentType, beforeSend: showLoader(), complete: complete(), success: function (res) { if (res != null && res != "") { var resultTips = respTips(res); if (resultTips.isOk) { if (callBack) { if (Object.prototype.toString.call(callBack) === "[object Function]") { //Object.prototype.toString.call方法--精确判断对象的类型 callBack(res); } else { console.log("callBack is not a function"); } } } else { new Tools.popUp({ title: '提示信息', messTxt: resultTips.msg || "系统错误!", iconType: 'tipIcon', isSingleBtn: true, suffix: 'd', closeCallBack: function (closeEvent) { closeEvent(); } }); } }else{ new Tools.popUp({ title: '提示信息', messTxt: "系统报错!", iconType: 'tipIcon', isSingleBtn: true, suffix: 'd', closeCallBack: function (closeEvent) { closeEvent(); } }); } }, error: function (err) { new Tools.popUp({ title: '提示信息', messTxt: "系统报错!", iconType: 'tipIcon', isSingleBtn: true, suffix: 'd', closeCallBack: function (closeEvent) { closeEvent(); } }); } }); //隐藏loader function complete() { if (completeBack) { if (Object.prototype.toString.call(completeBack) === "[object Function]") { //Object.prototype.toString.call方法--精确判断对象的类型 completeBack(); } else { console.log("completeBack is not a function"); } } } function showLoader() { if (isShowLoader) { var loader = '<div class="ajaxLoader"><div class="loader">加载中...</div></div>'; $("body").append(loader); } } function respTips(res) { var result = {}; switch (res.status_code) { case "1000": result = { isOk: true, msg: "操作成功!" } break; case "1011": result = { isOk: false, msg: "必选参数为空!" } break; case "1012": result = { isOk: false, msg: "操作参数校验异常!" } break; case "1021": result = { isOk: false, msg: "加载失败!" } break; case "1022": result = { isOk: false, msg: "保存失败!" } break; case "1024": result = { isOk: false, msg: "删除失败!" } break; } return result; } }
ajax统一封装例子
最新推荐文章于 2022-05-18 17:14:22 发布