微信小程序中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)
})
原文:https://www.cnblogs.com/lovewhatIlove/p/15253025.html