Fantastic-admin请求数据后自动跳转登录页的解决方法
根本原因是框架封装的axios对象配置了一个拦截器:
/* /src/api/index.ts */
api.interceptors.response.use(
(response) => {
/**
* 全局拦截请求发送后返回的数据,如果数据有报错则在这做全局的错误提示
* 假设返回数据格式为:{ status: 1, error: '', data: {} }
* 规则是当 status 为 1 时表示请求成功,为 0 时表示接口需要登录或者登录状态失效,需要重新登录
* 请求出错时 error 会返回错误信息
*/
if (response.data.status === 0) {
if (response.data.error !== '') {
toast.warning('Warning', {
description: response.data.error,
})
return Promise.reject(response.data)
}
}
else {
useUserStore().requestLogout()
}
return Promise.resolve(response.data)
},
// ... 以下省略
如果我们后端的响应数据格式跟这个不一致,比如我们用code字段定义状态,而不是上面的status,就会跳转到下面的else分支,最后跳转回登录页。
解决方法也很简单,把上面代码中的条件判断改成自己项目中定义的接口格式就可以了。

浙公网安备 33010602011771号