// 定义api服务地址 const baseUrl = 'http://dev.com:12345'; /** * 传入请求参数,返回Promise支持链试调用 * @param url 请求地址 * @param method 请求方法类型,不传入默认是"GET" * @param data 请求体数据 * @param params 请求参数 */ function request(url, method = "GET", data = {}, params = {}) { const header = { "content-type": "application/json" // 有其他content-type需求加点逻辑判断处理即可 } //TODO 获取token,有就丢进请求头 // const tokenString = wx.getStorageSync("access_token"); // if (tokenString) { // header.Authorization = `Bearer ${tokenString}`; // } return new Promise(function (resolve, reject) { // 判断是否传递了query参数,有则进行地址拼接 // if (params) { // url += "?" + urlEncode(params) // } wx.showLoading({ title: '加载中...', mask: true //显示蒙层 }) wx.request({ url: baseUrl + url, timeout: 8000, method, data, dataType: "json", // 微信官方文档中介绍会对数据进行一次JSON.parse header, success(res) { wx.hideLoading(); console.log(res); // HTTP状态码为200才视为成功 if (res.statusCode === 200) { // 真正的数据响应体中还有一层success字段判断业务状态,按实际情况处理 if (res.data.success) { resolve(res.data.result) } else { // 业务判断错误 reject(res) } } else { // wx.request的特性,只要有响应就会走success回调,所以在这里判断状态,非200的均视为请求失败 reject(res) } }, fail(err) { wx.hideLoading(); // 断网、服务器挂了都会fail回调,直接reject即可 reject(err) } }) }) } // 导出请求和服务地址 export { request, baseUrl }