uniapp真机模拟发送请求时header的auth未添加显示鉴权错误
登录后存储鉴权key到storage:
uni.setStorageSync({
key: 'token',
data: JSON.stringify(auth),
success() {}
})
请求拦截后,加入key到header:
uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
// 初始化请求拦截器时,会执行此方法,此时data为undefined,赋予默认{}
config.data = config.data || {}
// 根据custom参数中配置的是否需要token,添加对应的请求头
if(config?.custom?.auth) {
// 可以在此通过vm引用vuex中的变量,具体值在vm.$store.state中
uni.getStorageSync({
key:'token',
success(res) {
const data = JSON.parse(res.data)
config.header[`${data[0]}`] = data[1]
}
})
// config.header.token = vm.$store.state.userInfo.token
}
return config
}, config => { // 可使用async await 做异步操作
return Promise.reject(config)
})
h5浏览时,没有问题
但真机模拟后台返回401,是header没加上auth,把storage改成storageSync同步存储就好了。