我试图拦截所有401响应,然后将它们重定向到另一页。
这是我为实例所做的
const instance = axios.create({
baseURL: "https://api.example.com/",
withCredentials: true
});
// Add a response interceptor
instance.interceptors.response.use(
function(response) {
return response;
},
function(error) {
if (401 === error.response.status) {
console.log('intercepted');
window.location = "/login";
} else {
return Promise.reject(error);
}
}
);
export default instance;
在我的API服务文件中,我正在使用实例调用axios。
import axiosInstance from "../utils/axiosInstance";
const response = await axiosInstance.post("/player/new", bodyFormData);
此API将返回401,但是拦截器没有捕获到它,我可以在网络开发工具中看到失败的请求。
答案 0 :(得分:0)
您应该将拦截器添加到axios instance
而非axios
本身,如documentation中指出的那样:
instance.interceptors.response.use(
function(response) {
return response;
},
function(error) {
if (401 === error.response.status) {
console.log('intercepted');
window.location = "/login";
} else {
return Promise.reject(error);
}
}
);