Перехватчик Ax ios не перенаправляет браузер в приложении React - PullRequest
0 голосов
/ 20 января 2020

У меня есть приложение Redux / React с прокси OAuth2. Когда прокси-сервер дает ответ 401, пользователь должен быть перенаправлен на страницу аутентификации. Вот основная идея c с использованием axios и перехватчиков.

import axios from 'axios'

export const axiosApi = axios.create({
  baseURL: '/proxy/api',
})

axiosApi.interceptors.response.use(response => {
  // Intercept successful response data
  return response
}, error => {
  if (error.response && error.response.status === 401) {
    // Redirect when not authenticated
    window.location.href = '/proxy/authorize'
  }
  return Promise.reject(error);
})

Вот как выглядят действия Redux, использующие axiosApi:

export const fetchUsers = () => dispatch =>
  new Promise((resolve, reject) => {
    axiosApi.get(`users`)
      .then(res => {
        dispatch(fetchUsersData(res.data))
        resolve(res)
      })
      .catch(err => {
        reject(err)
      })
  })

Проблема в том, что window.location.href = '/proxy/authorize' фактически не перенаправляет браузер. Это потому, что используется реагирующий маршрутизатор (V5)?

...