отправлять экземпляр заголовка axios уникальным для каждого запроса? - PullRequest
0 голосов
/ 08 ноября 2018

Можно ли отправлять заголовки 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 => {
      })
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...