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

简介: 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了。


目录
相关文章
|
1天前
|
NoSQL 前端开发 测试技术
若依修改,若依如何发送请求---王清江07,axios的请求在request.js文件中,若依发送GET请求,必须用param
若依修改,若依如何发送请求---王清江07,axios的请求在request.js文件中,若依发送GET请求,必须用param
|
2天前
|
JSON 数据格式
axios发送post请求,如何接受和返回一个axios的字段,解决bug的方法,困难的事情先从简单做起,先从发送一个axios的post请求做起,解决方法查别人的资料,查看F12看network就行
axios发送post请求,如何接受和返回一个axios的字段,解决bug的方法,困难的事情先从简单做起,先从发送一个axios的post请求做起,解决方法查别人的资料,查看F12看network就行
|
3天前
|
JavaScript
文本,前后端数据交互,简单请求,如何去给data数据赋值,在mounted()里赋值,利用axios发送的请求,res就是数据集,就是后端的数据,this.users = res.data.data
文本,前后端数据交互,简单请求,如何去给data数据赋值,在mounted()里赋值,利用axios发送的请求,res就是数据集,就是后端的数据,this.users = res.data.data
|
3天前
vue3 在 watchEffect 里中断未完成的 axios 请求(只保留最后一次请求的方法---连续点击查询按钮的优化)
vue3 在 watchEffect 里中断未完成的 axios 请求(只保留最后一次请求的方法---连续点击查询按钮的优化)
6 0
|
3天前
|
前端开发
网页设计,若依项目修改(It must be done)02------axios封装后发get请求,axios请求的位置在呢?
网页设计,若依项目修改(It must be done)02------axios封装后发get请求,axios请求的位置在呢?
数据交互,前后端数据请求,axios请求,对象结构的使用,E6的使用,结构赋值是什么?函数形参的obj如何,函数形参的obj就改成对象结构接收传入的数据对象
数据交互,前后端数据请求,axios请求,对象结构的使用,E6的使用,结构赋值是什么?函数形参的obj如何,函数形参的obj就改成对象结构接收传入的数据对象
|
5天前
|
JavaScript 前端开发 数据格式
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
7 0
|
2月前
|
JavaScript
vue封装axios(用interceptors封装)
vue封装axios(用interceptors封装)
30 0
|
2月前
|
JSON 前端开发 JavaScript
3分钟让你学会axios在vue项目中的基本用法(建议收藏)
3分钟让你学会axios在vue项目中的基本用法(建议收藏)
267 0
|
5天前
|
前端开发 JavaScript 数据库
vue 使用 async 和 await 实现异步 axios 同步化(实战案例:数据异步校验通过后,再执行保存)
vue 使用 async 和 await 实现异步 axios 同步化(实战案例:数据异步校验通过后,再执行保存)
10 1