VueJS-Axios Interceptors 未收到 401 响应
2021-12-02
678
当我发出 Post 请求时,我尝试为 Axios 设置请求和响应拦截器,但是我只能让请求拦截器响应,而没有其他响应,我提供了一个不运行的示例:
这是 axios 设置:
import axios from "axios";
axios.defaults.baseURL = "https://btk7dl15c9.api.quickmocker.com";
axios.interceptors.request.use(
async (config) => {
console.log("request ok");
return config;
},
(error) => {
console.log("request error");
return Promise.reject(error);
}
);
axios.interceptors.response.use(
(response) => {
console.log("response ok");
return response;
},
(error) => {
console.log("response error");
return Promise.reject(error);
}
);
export default {
methods: {
axiosPost(url, data) {
return axios.post(url, data);
}
}
};
https://codesandbox.io/s/keen-shockley-xccsx
我需要能够拦截 401 才能进行令牌刷新调用(未包含在示例中)
2个回答
您使用了
"axios": "0.21.2"
,它的拦截器中似乎有一个错误,他们在
v0.21.3
中修复了该错误。
如果您升级到
0.21.3
或降级到
0.21.1
,这应该可以解决您的问题。
Tawfik Nasser
2021-12-02
对于其他尝试解决此问题的人,如果接受的答案对您不起作用,请在您的代码中检查类似以下内容:
axios.defaults.validateStatus = () => {
return true
}
我将其添加到我的
main.js
,因此响应代码 >= 300 不会引发错误。这意味着所有响应都会转到我的拦截器中的第一个函数。当我将 401 处理移至拦截器的第一个函数时,拦截器按预期工作。
bumbleshoot
2023-07-07