我在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()'中的调用也是如此。
答案 0 :(得分:1)
不能评论抱歉。
在main.js中创建Vue实例之前,请确保先创建拦截器。