【发布时间】:2019-11-19 00:21:22
【问题描述】:
我使用 axios 拦截器来维护内部服务器错误。如果响应有错误而不重新加载,我需要重定向到另一个 url。下面的代码我使用了 location.href。所以它正在重新加载。我需要一个解决方案来重定向而不刷新页面。
我在 react-router-dom 中尝试了“重定向”。但这对我不起作用。
export function getAxiosInstance() {
const instance = axios.create();
const token = getJwtToken();
// Set the request authentication header
instance.defaults.headers.common['Authorization'] = `Bearer ${token}`;
// Set intercepters for response
instance.interceptors.response.use(
(response) => response,
(error) => {
if (config.statusCode.errorCodes.includes(error.response.status)) {
return window.location.href = '/internal-server-error';
}
return window.location.href = '/login';
}
);
return instance;
}
谁能帮我解决这个问题?
【问题讨论】:
-
你在使用 Redux 吗?
-
@MosèRaguzzini 是的,我是。
-
好的,您可以导入您的商店实例并调度在这种情况下将更改路线的操作。或者您可以在我的回答中采用以下解决方案。
-
@MosèRaguzzini 谢谢。我会试试你的解决方案。
标签: reactjs react-router axios interceptor