我在我的Vue应用程序中使用JWT,并且需要使用Axios提交每个 AJAX 请求所需的Authorization头。在我的“main.js”文件中,我设置了一个拦截器来完成以下任务:
axios.interceptors.request.use(req => {
if(sessionStorage.getItem('token')) {
req.headers['Authorization'] = auth.getAuthHeader();
}
return req;
});
然而,在一个组件中,我在mounted()中发出了 AJAX 请求,因此:
mounted() {
this.salePrep();
}
方法是:
async salePrep(){
const response = await this.$axios.get(contextPath + "/sale/prep");
this.$store.commit("setData", response.data);
},
由于我不明白的原因,axios拦截器没有被调用。是否有什么关于mounted()阶段的东西我不明白?为什么这个 AJAX 调用会不同?一旦组件被加载,所有的AJAX调用都成功地使用了拦截器--也就是说,Authorization头被设置了。只是没有mounted()中的那个。
编辑:我已经确定,在'created()'中的调用也是如此。
1条答案
按热度按时间bbuxkriu1#
没有能力发表评论,所以这里有一个答案。
确保在main.js中创建Vue示例之前创建拦截器。