为什么axios.interceptors执行了两次。

发布于 2022-09-07 12:46:29 字数 1173 浏览 11 评论 0

为什么axios.interceptors执行了两次

 
 new Vue({
    router,
    store,
    created() {
      Vue.prototype.$http = axios;
      this.$http.interceptors.response.use(response => {
        console.log('-----')
                return response.data
            }, error => {
                if (error && error.response && error.response.status == "401") {
          this.$cookies.remove("userName");
          this.$cookies.remove("token");
          //应该清除router路由信息,不然菜单会有问题
          this.$router.options.routes = [];
                    this.$router.push({ path: "/login" });
                }
                return Promise.reject(error)
      });
      if (VueCookies.get("token")) {
        axios.defaults.headers["Authorization"] = VueCookies.get("token");
        store.dispatch("UpdateMenu");
      } else {
        this.$cookies.remove("userName");
        this.$cookies.remove("token");
        //应该清除router路由信息,不然菜单会有问题
        this.$router.options.routes = [];
        this.$router.push({ path: "/login" });
      }
    },
    render: h => h(App)
  }).$mount('#app');

打印了两行“----”。其他地方没有设置axios.interceptors

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

抹茶夏天i‖ 2022-09-14 12:46:29

我也碰到了,初步发现,是因为重复注册了这个拦截器导致。

才能让你更想念 2022-09-14 12:46:29

我现在也遇到了,脑壳疼 data functions should return an object 主要是找不到它为什么会触发两次的原因

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文