对于302状态轴的响应未定义

问题描述 投票:0回答:2

我正在使用带有打字稿的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);
});

我想做的是,未经身份验证时,我需要重定向到其他位置(Identityserver SSO页面,但这与我无关)。

因此,如果未通过正确的位置进行身份验证,则调用我的API时会返回302状态代码。

但是该axios不会自动重定向到该位置。

如果我必须手动重定向,那还是可以的。

但是我得到的是“ error.response”未定义。

所以现在如何重定向?因为“ error.response”未定义,我无法检测状态代码。

在网络选项卡中,显示如下。

enter image description here

响应选项卡显示如下。没有可用的响应数据... !!!

enter image description here

我在做什么错?

ajax typescript axios identityserver4
2个回答
2
投票

据我所知,302代码是由浏览器处理的。回答302之后,浏览器将接收由位置标头传递的页面,并将其传递给Axios。因此,您可以在response.data中找到html页面。同样在response.request.responseURL中,您可以找到需要重定向到的URL。


0
投票

我认为以下是该问题的答案。还是我不确定。

© www.soinside.com 2019 - 2024. All rights reserved.