微信小程序中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) })