foreverrechard 2021-09-05 17:53 采纳率: 100%
浏览 284
已结题

axios请求成功,但是在相应拦截中却执行了error


//对响应进行拦截
axios.interceptors.response.use(
  (response) => {
    console.log("test");
    if (response.status == "507") {
      Message.error({
        message: "服务端错误,请稍后再试",
      });
    } else if (response.status == "403" || response.status == "401") {
      Message.warning({
        message: "登陆过期,请重新登录",
      });
      clearTimeout(time);
      time = setTimeout(function () {
        Router.push({ name: "login" });
      }, 2000);
    }
    return response;
  },
  (error) => {
    // 在return之前做你想做的事情
    //必须如下所示return
    return Promise.reject(error);
  }
);

代码如上所示,明明成功了,但是却是执行error这个回调函数。这里的功能是删除,后端只会返回一段提示,打印出来的提示如下:

img

图片的第二段是返回的内容,现在直接报错的方式打印出来了。请问这该怎样解决呀?求各位解答一下。

  • 写回答

1条回答 默认 最新

  • CSDN专家-showbo 2021-09-05 18:02
    关注

    服务器端虽然捕捉了错误并输出错误内容,但是响应头应该是被设置成了500状态而不是200,所以未执行success回调。题主看调试工具看网络选项卡的请求,应该是500响应头

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月15日
  • 已采纳回答 9月7日
  • 创建了问题 9月5日