gpt4 book ai didi

ajax - 302 状态 axios 的响应未定义

转载 作者:行者123 更新时间:2023-12-05 04:02:16 62 4
gpt4 key购买 nike

我正在将 axios 与 typescript 结合使用。

我有一个简单的 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

我做错了什么?

最佳答案

据我了解,302 代码由浏览器处理。响应 302 后,浏览器将收到位置 header 传递的页面,并将其传递给 Axios。所以你可以在 response.data 中找到页面 html。同样在 response.request.responseURL 中,您可以找到需要重定向到的 URL。

所以我做了这样的事情:

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

现在对我有用。

关于ajax - 302 状态 axios 的响应未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54500755/

62 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com