Можно ли отправлять заголовки 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, что вызывает бесконечный цикл.
Большинство ответов по 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 => {
})
}