未使用Vue.js在mount()中调用axios拦截器

时间:2020-10-03 12:10:37

标签: vue.js axios

我在Vue应用程序中使用JWT,并且需要使用Axios随每个AJAX请求提交必需的Authorization标头。在我的“ main.js”文件中,我设置了执行此操作的拦截器:

axios.interceptors.request.use(req => {
  if(sessionStorage.getItem('token')) {
    req.headers['Authorization'] = auth.getAuthHeader();
  }
  return req;
});

但是,在一个组件中,我在mount()中提出了AJAX请求,因此:

mounted() {
  this.salePrep();
}

这是方法:

async salePrep(){
  const response = await this.$axios.get(contextPath + "/sale/prep");
  this.$store.commit("setData", response.data);
},

出于我不了解的原因,没有为此要求axios拦截器。我没有掌握关于mount()阶段的某些信息吗?为什么这个AJAX调用会有所不同?加载组件后,所有AJAX调用都会成功使用拦截器-即,设置了Authorization标头。只是不是mount()中的那个。

编辑:我确定'created()'中的调用也是如此。

1 个答案:

答案 0 :(得分:1)

不能评论抱歉。

在main.js中创建Vue实例之前,请确保先创建拦截器。