Ответ не определен для 302 осей статуса - PullRequest
0 голосов
/ 03 февраля 2019

Я использую axios с машинописью.

У меня есть простой перехватчик axios, закодированный как показано ниже.

// Add a response interceptor
axios.interceptors.response.use((response: AxiosResponse<any>) => {
  // Do something with response data
  return response;
}, (error: any) => {
  // Do something with response error
  // Here "error.response" is undefined. 
  return Promise.reject(error);
});

Что я пытаюсь сделать, так это то, что мне нужно перенаправить в другое место (страница SSO удостоверения личности, но это не имеет отношения здесь, я думаю), когда не аутентифицирован.

, поэтому при вызове мой API возвращает код состояния 302, если не аутентифицирован с правильным местоположением.

, но эта ось не перенаправляет в это местоположение автоматически.

Это все еще нормально, если мне нужно вручную перенаправить.

но я получаю "error.response" как неопределенное.

Итак, как мне перенаправить?Поскольку я не могу обнаружить код состояния из-за "error.response" как неопределенного.

На вкладке сети это отображается следующим образом.

enter image description here

Вкладка Response показывает следующее.Нет доступных данных ответа ... !!!

enter image description here

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 18 августа 2019

Как я понял, код 302 обрабатывается браузером.После ответа 302 браузер получит страницу, которую передал заголовок местоположения, и передаст ее Axios.Так что вы можете найти страницу HTML в response.data.Также в response.request.responseURL вы можете найти URL, на который нужно перенаправить.

Так что я сделал что-то вроде этого:

axios.post('.', Data)
     .then(response => {
         if (response.status === 200) {
             window.location.href = response.request.responseURL;
         }
     })
     .catch(error => {console.log(error)});

Это полезно для меня сейчас.

0 голосов
/ 03 февраля 2019

Я думаю, что ниже ответ на этот вопрос.Тем не менее я не уверен в этом.

Так что не отмечать как ответ.

https://www.sean -lan.com / 2017/08/15 / fetch-meet-302 /

Ajax не может обработать 302 запроса ... !!!

Он обрабатывается браузером ... !!!

По приведенной выше ссылке.

...