💭💭
✨:在请求拦截器里添加Authorization携带Token报错
💟:东非不开森的主页
💜: 沉下心来💜💜
🌸: 如有错误或不足之处,希望可以指正,非常感谢😉
- 在请求拦截器里添加Authorization携带Token
interceptors: {
requestSuccessFn: (config) => {
// 每一个请求都自动携带token
const token = localCache.getCache(LOGIN_TOKEN)
if (config.headers && token) {
// 类型缩小
config.headers.Authorization = 'Bearer ' + token
}
return config
}
}
- 发现报错
- 查看axios版本:1.2.2
方法一
在网上查阅资料发现:
1.2.2
版本的AxiosHeaders
中有这样一个方法可以设置请求头,在headers
调用set方法设置一个Authorization
属性,查看axios源码发现其有个set方法,可调用该方法设置新的headers的属性名和值
所以我们可以这样写
- 需要判断set的类型,当其类型为
function
再调用该方法
记得Bearer拼接的时候后面有个空格!!!!!
interceptors: {
requestSuccessFn: (config) => {
// 每一个请求都自动携带token
const token = localCache.getCache(LOGIN_TOKEN)
if (config.headers && typeof config.headers?.set === "function" ) {
config.headers.set("Authorization", `Bearer ${token}`)
}
return config
}
}
})
方法2
还可以降版本,将axios卸载,再重新下载1.1.3版本,这样就可以解决报错问题
yarn remove axios
yarn add axios@1.1.3