Ответ перехватчика Axios не может обработать просроченный refresh_token (401) - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть следующий перехватчик в моем ответе axios в App.js в ComponentDidMount (), и он не работает для всех запросов axios.

    axios.interceptors.response.use(function (response) {

        if (response)
            return response;
    }, function (error) {

        if (error.response && 401 == error.response.status) {
            console.log('401')
            return Promise.reject(error);
        }
        else {
            return Promise.reject(error);
        }
    });

Когда я вызываю API и получаю ошибку 401,этот код не работает для меня.Я использую этот код в другом компоненте и не могу обработать ошибку 401

  axios
  .get("/web-api/home/", { headers: headers })
  .then(response => {
    this.setState({
      homeconfig: response.data
    });
  })
  .catch((response) => {
    console.log(response);
  });

1 Ответ

0 голосов
/ 17 ноября 2018

Вы установили набор перехватчиков axios в ComponentDidMount.возможно, что дочерний компонент вызывает запрос до этой конфигурации.(особенно если вы вызываете запрос в конструкторе дочернего компонента).Поэтому вы должны выполнить эту настройку перед монтированием любого компонента.Поместите вашу конфигурацию в componentWillMount или в конструктор (я предпочитаю конструктор, потому что componentWillMount будет устаревшим в более новых версиях реагировать-17).

...