function getHeader() { //header头部 return { "Accept":"application/json", 'Content-Type': 'application/json; charset=utf-8', 'ACCESS_TOKEN': `${token}`, "WECHAT_ID":'1', }; }
[{ method: 'get', hasBody: false, }, { method: 'post', hasBody: true, }, { method: 'put', hasBody: true, }, { method: 'del', hasBody: false, }].map(i => { module.exports[i.method] = function(url, optOrData, opt) { var data; if (i.hasBody) { data = optOrData; } else { opt = optOrData; } var p = () => new Promise((resolve, reject) => { /*wx.showLoading();*/ //体验效果去掉加载圈 uni.request({ url: urlHandler(url), //对传入的uri进行前缀的添加, method: i.method.toUpperCase(), header: getHeader(), data: i.hasBody ? data : undefined, success: function(info = {}) { // wx.hideLoading(); successHandler(resolve, reject, info.data, opt); }, fail: function(info = {}) { uni.hideLoading(); errorHandler(reject, info.data, opt); } }); }); // 等登录完毕后再执行 if (false) {//需要暂停执行接口的判断,比如当执行登录的时候,需要暂停接口的请求 return loginPromise.then(p).catch(p); } else { //继续执行余下接口 return p(); } } });
function successHandler(resolve, reject, data = {}, opt = {}) { //成功的回调s if (data.code != 200 ) { //接口的拦截,如果接口返回 200以外 就执行 失败的回调方法 return errorHandler(reject, data, opt); } if (opt.showSuccessToast) { wx.showToast({ title: data.msg || '成功', icon: 'success' }); } resolve(data); }
function errorHandler(reject, data = {}, opt = {}) { //失败的回调 if(codeMessage[data.code]){ uni.showToast({ title: codeMessage[data.code], icon: 'none' }) }else if(data.msg){ uni.showToast({ title: data.msg, icon: 'none' }) } reject(data); }
const codeMessage = { 200: "服务器成功返回请求的数据。", 201: "新建或修改数据成功。", 202: "一个请求已经进入后台排队(异步任务)。", 204: "删除数据成功。", 400: "发出的请求有错误,服务器没有进行新建或修改数据的操作。", 401: "用户没有权限(令牌、用户名、密码错误)。", 402: "要求付款。", 403: "用户得到授权,但是访问是被禁止的。", 404: "发出的请求针对的是不存在的记录,服务器没有进行操作。", 405: "不允许此方法。", 406: "请求的格式不可得。", 410: "请求的资源被永久删除,且不会再得到的。", 422: "当创建一个对象时,发生一个验证错误。", 500: "服务器繁忙,请稍后重试。", 502: "网关错误。", 503: "服务不可用,服务器暂时过载或维护。", };
针对于上方失败的回调中,错误的端口号,进行比对