Выборка / Реакция не перенаправляет с Node / Express res.redirect () - PullRequest
0 голосов
/ 23 февраля 2019

В моем React-интерфейсе я выполняю вызов fetch () на мой сервер Node / Express.Сервер Node / Express проверяет, есть ли в ответе определенный файл cookie, и, если нет, следует перенаправить его.Мой код выглядит примерно так:

Код реагирования

componentDidMount(){
      fetch('/example',{redirect: "follow"})
      .then(data => data.json())
      .then(res => {
        //do something with response
         }
      })
   }

Узел / Экспресс:

router.use((req, res, next) => {
    let { token } = req.cookies;

    if(token){
        next();
    }
    else{
        res.redirect(303, '/login');
    }
});

router.get('/example', (req, res) =>{
    //sends a json response back
})

Может быть важно отметить, что я использую реагирующий маршрутизатор-dom как маршрутизатор браузера, думал, что я не уверен, что это делает с перенаправлениями сервера.Я искал и видел людей, которые сказали, чтобы установить перенаправление, чтобы "следовать".Однако, даже если установить статус 3xx и установить перенаправление на «follow», страница все равно не будет перенаправлена ​​правильно.Вместо этого он получает ответ с 200 OK status (который я не понимаю, как это могло измениться, если Node / Express фактически не установил его на «303»), redirected: true и response.url, указывающий наURL перенаправления, но все еще остается на той же странице.Я удостоверился, что куки там нет, так что это не так.Я знаю, что, возможно, могу каждый раз проверять response.redirected и вручную устанавливать window.location = response.url, но я до сих пор не понимаю, почему не сработал редирект.Нужно ли устанавливать его каждый раз вручную?

...