当前位置:   article > 正文

axios拦截器:每次请求自动带上 token_axios每次请求都携带

axios每次请求都携带

Step 1:创建Axios实例并添加拦截器

在你的Vue项目中,一般我们会先导入axios,然后创建一个axios实例。这样做是为了方便统一管理和配置。

  1. import axios from 'axios'; // 引入axios
  2. // 创建一个axios实例
  3. const service = axios.create();
  4. // 添加请求拦截器
  5. service.interceptors.request.use(
  6. config => {
  7. // 在发送请求之前做点事情
  8. let token = window.sessionStorage.getItem('token'); // 从sessionStorage获取Token
  9. if (token) { // 如果Token存在
  10. config.headers.Authorization = `Bearer ${token}`; // 将Token添加到请求头中,这里假设Token的格式是Bearer + Token值
  11. }
  12. return config; // 返回配置对象,继续发送请求
  13. },
  14. error => {
  15. // 对请求错误做点事情
  16. return Promise.reject(error);
  17. }
  18. );

上面的代码做了什么呢?

1. 我们创建了一个axios实例service,相当于有了一个专属邮差。

2. 给这个邮差设置了规则:每次出门送信前,先检查一下有没有会员卡(Token)。

3. 如果找到了会员卡(从sessionStorage中获取Token),就把会员卡号(Token值)写在信封上(添加到请求头Authorization字段)。

4. 即使遇到请求错误,也会及时通知我们。

Step 2:全局使用带有拦截器的Axios实例

为了让Vue组件中的所有请求都能自动带上Token,我们将这个设置了拦截器的axios实例挂载到Vue的原型上:

  1. // 将axios实例绑定到Vue原型上,这样在所有Vue组件中都可以通过this.$http访问到
  2. Vue.prototype.$http = service;

现在,每当在Vue组件中发起请求时,只需要调用this.$http.get、this.$http.post等方法,请求头就会自动带上从sessionStorage获取到的Token了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/886532
推荐阅读
相关标签
  

闽ICP备14008679号