Как заставить сервер перенаправлять запрос axios get?

#node.js #express #axios

#node.js #экспресс #axios

Вопрос:

Как я могу принудительно перенаправить сервер, инициируемый запросом axios get / post?

  • включено промежуточное программное обеспечение cors
  • сервер не отвечает перенаправлением на другой маршрут
 // FE REQUEST
const redirectBTN = document.querySelector('.btn-redirect');
redirectBTN.addEventListener('click', async () => {
   axios.get('http://localhost:8000/from');
});

// BE RESPONSE    
app.get('/from', (req, res) => {
  res.redirect('/to');
});
app.get('/to', (req, res) => res.send('Hello, World!'));
  

Ответ №1:

Ajax вызовы не являются «чистым» запросом браузера, они не могут заставить браузер перенаправить на страницу (с помощью заголовков).

Вы можете использовать window.location для перенаправления пользователя, если знаете URL.

 const redirectBTN = document.querySelector('.btn-redirect');
redirectBTN.addEventListener('click', async () => {
   window.location.href = 'http://localhost:8000/from';
});
  

Или вы можете выполнить вызов Ajax и использовать window.location

 const redirectBTN = document.querySelector('.btn-redirect');
redirectBTN.addEventListener('click', async () => {
   axios.get('http://localhost:8000/from')
     .then((res) => {
        window.location.href = 'http://localhost:8000/from/'   res.some.data;
     });
});