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分支,最后跳转回登录页。
解决方法也很简单,把上面代码中的条件判断改成自己项目中定义的接口格式就可以了。

posted @ 2025-04-03 21:04  洛樱喵喵  阅读(123)  评论(0)    收藏  举报