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