axios拦截器:每次请求自动带上 token

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

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

复制代码
import axios from 'axios'; // 引入axios

// 创建一个axios实例
const service = axios.create();

// 添加请求拦截器
service.interceptors.request.use(
  config => {
    // 在发送请求之前做点事情
    let token = window.sessionStorage.getItem('token'); // 从sessionStorage获取Token
    if (token) { // 如果Token存在
      config.headers.Authorization = `Bearer ${token}`; // 将Token添加到请求头中,这里假设Token的格式是Bearer + Token值
    }
    return config; // 返回配置对象,继续发送请求
  },
  error => {
    // 对请求错误做点事情
    return Promise.reject(error);
  }
);

上面的代码做了什么呢?

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

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

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

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

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

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

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

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

相关推荐
IT 行者2 小时前
Web逆向工程AI工具:JSHook MCP,80+专业工具让Claude变JS逆向大师
开发语言·javascript·ecmascript·逆向
devlei3 小时前
从源码泄露看AI Agent未来:深度对比Claude Code原生实现与OpenClaw开源方案
android·前端·后端
程序员 沐阳4 小时前
JavaScript 内存与引用:深究深浅拷贝、垃圾回收与 WeakMap/WeakSet
开发语言·javascript·ecmascript
Jagger_4 小时前
周末和AI肝了两天,终于知道:为什么要把AI当做实习生
前端
weixin_456164834 小时前
vue3 子组件向父组件传参
前端·vue.js
沉鱼.444 小时前
第十二届题目
java·前端·算法
Setsuna_F_Seiei5 小时前
CocosCreator 游戏开发 - 多维度状态机架构设计与实现
前端·cocos creator·游戏开发
Bigger5 小时前
CodeWalkers:让 AI 助手化身桌面宠物,陪你敲代码的赛博伙伴!
前端·app·ai编程
cyclv6 小时前
无网络地图展示轨迹,地图瓦片下载,绘制管线
前端·javascript
土豆12506 小时前
Tauri 入门与实践:用 Rust 构建你的下一个桌面应用
前端·rust