我在VueJs项目中实现了axios拦截器,如下所示:
axios.interceptors.response.use(
async (response) => {
return response;
},
async (error) => {
const originalRequest = error.config;
const isPublicUrl = [
'/account/login',
'/account/register'
].some(url=> originalRequest.url.includes(url));
if(isPublicUrl){
return Promise.reject(error);
}
if(error.response.status!==401){
return Promise.reject(error);
}
const token:TokenOpts = store.getters['auth/getToken'];
try{
const res = await AuthService.refreshToken(token);
const newToken = res.data;
store.dispatch('auth/refreshToken',newToken);
originalRequest.headers.Authorization = `Bearer ${newToken.accessToken}`;
const originalResponce = await axios.request(originalRequest);
return Promise.resolve(originalResponce);
}
catch(error){
return Promise.reject(error);
}
}
)
我可以刷新令牌,然后发送原始请求,这里没有问题。我的问题是,当我拦截错误并最终进入错误处理程序时:async(error)=> {HERE ...我已经在Chrome控制台中出现错误。如何防止将此错误记录到控制台?
这与VueJ无关。所有错误都将记录在控制台中,因为这是浏览器中启用的默认选项。单击此链接禁用网络错误消息。 Suppress Chrome 'Failed to load resource' messages in console