微信小程序中app.js的变量方法是可以通过getApp()暴露在其他页面的
通过getApp()我们可以封装ajax,这样就不用一个页面一个页面的去写request了
也不用一遍又一遍的去写重复的请求url头部
ajax: { get: (url, data, header) => { return getApp().ajax.request(url, data, header, \'GET\') }, post: (url, data, header) => { return getApp().ajax.request(url, data, header, \'POST\') }, request(url, data, header = {}, method) { const vm = this wx.showLoading() if (wx.getStorageSync(\'userInfo\').accessToken) { let token = { "access-token": wx.getStorageSync(\'userInfo\').accessToken } Object.assign(header, token) } return new Promise((resolve, reject) => { wx.request({ url: \'https://\' + url, data, header, method, success(res) { wx.hideLoading() if (res.statusCode == 200) { if (res.data.code == 200) { resolve(res.data) } else if (res.data.code == 401) { wx.showToast({ title: res.data.msg || \'请重新登录!\', icon: "none" }) reject(res.data) wx.navigateTo({ url: `/pages/index/index` }) } else if (res.data.code == 402) { reject(res.data) wx.navigateTo({ url: `/pages/login/login` }) } else if (res.data.code == 403) { wx.showToast({ title: res.data.msg || \'没有权限!\', icon: "none" }) reject(res.data) } else { wx.showToast({ title: res.data.msg || \'请求失败!\', icon: "none" }) reject(res.data) } } else { wx.showToast({ title: res.data.msg || \'请求失败!\', icon: "none" }) reject(res) } }, fail() { reject({ msg: \'请求失败\', url: vm.withBaseURL ? vm.baseURL + url : url, method, data }) } }) }) }, }
在其他页面调用也很简单
getApp().ajax.get(`/api/?time=${this.data.data}`).then(res => { console.log(res) }) getApp().ajax.post(\'/api/\', this.data.data).then(res => { console.log(res) })
请发表评论