//请求地址
const apiUrl = "http://xxx/xxx";
//公共的请求地址数据缓存选择其一
wx.setStorageSync("apiUrl", apiUrl);
// 封装微信请求方法
const request = (params) => {
let url = params.url;
let data = params.data;
let method = params.method;
let header = {
"content-type": "application/json;charset=utf-8 ",
"Authorization": 'Bearer ' + wx.getStorageSync("token")
};
// 鉴权验证,获取登录之后后端返回的token,存在即在头部Authorization写token,具体的看后端需求
if (wx.getStorageSync("token")) {
header.token = wx.getStorageSync("token");
}
return new Promise((resolve, reject) => {
wx.request({
url: apiUrl + url, //接口请求地址
method: method,
data: data, // 请求参数
header: header, // 头部
success(res) {
// 判断状态码---errCode状态根据后端定义来判断
if (res.statusCode < 399) {
//401 token失效,需重新获取
if (res.data.code === 401) {
wx.showModal({
title: "提示",
content: "登录过期,请重新授权登录",
showCancel: false,
success(res) {
wx.removeStorageSync("token") //移除token
//跳转到指定页面
},
});
reject(res.data);
}
resolve(res.data);
} else {
// 其他异常
switch (res.statusCode) {
case 404:
wx.showToast({
title: '未知异常',
duration: 2000,
})
break;
default:
wx.showToast({
title: '请重试...',
duration: 2000,
})
break;
}
reject("未知错误,请稍后再试");
}
},
fail(err) {
if (err.errMsg.indexOf('request:fail') !== -1) {
wx.showToast({
title: '网络异常',
icon: "error",
duration: 2000
})
} else {
wx.showToast({
title: '未知异常',
duration: 2000
})
}
reject(err);
},
complete() {
wx.hideLoading()
},
});
});
};
module.exports = {
apiUrl,
request,
}
!!!个人封装经供参考