在将实例创建为param之后(不是默认值),是否可以发送axios标头?
假设我通过.create()
有一个基本实例
export const api = axios.create({
baseURL: BACKEND_URL,
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'X-Requested-With': 'XMLHttpRequest'
}
});
我想发送经常更新的JWT令牌。存在到同一实例的401错误(要求更新令牌)的路由。当我进行令牌刷新时,仍会通过另一个401将Authorization标头附加到send和backend上,从而导致无限循环。
StackOverflow上的大多数答案都会导致axiosIntance.defaults.header
更新,但是该解决方案对我不起作用
// I don't want defaults, just specific for this particular request
// api.defaults.headers['Authorization'] = 'JWT ' + this.props.onboardingToken
// can i send header in params instead ? It doesnt work with this syntax taken from officials docs
const params = {
headers: {
'Authorization': 'JWT ' + this.props.onboardingToken
},
data: {
name: name
}
}
api
.patch(`company/${companyId}`, params)
.then(res)
.catch(err => {
if (err.response.status === 401){
this.refreshToken();
}
})
因此,此错误处理请求也附带了标头
refreshToken = () => {
const token = this.props.urlToken
onboardingApi
.post('login-token', {"token": token})
.then(res => {
this.repeatPatch()
})
.catch(err => {
})
}