Axios设置token到请求头的三种方式

1、为什么要携带token?

用户登录时,后端会返回一个token,并且保存到浏览器的localstorage中,可以根据localstorage中的token判断用户是否登录,登录后才有权限访问相关的页面,所以当发送请求时,都要携带token给后端进行判断。

2、Axios设置token请求头的三种方式

第一种:配置前置拦截器(因为每次发送axios请求都要携带token信息,所以可以在main.js中进行全局配置)

就是在发送axios请求之前将请求拦截,添加头部信息后再发送请求

复制代码
import axios from 'axios'
//配置axios的全局基本路径
axios.defaults.baseURL = 'http://localhost:8080';
//全局属性配置,在任意组件内可以使用this.$http获取axios对象
Vue.prototype.$http = axios



// 配置axios前置拦截器,作用是让所有axios请求携带token,后台需要token校验是否登录
axios.interceptors.request.use(config => {
  // 1.从缓存中获取到token,这里的Authorization时登录时你给用户设置token的键值
  let authorization = localStorage.getItem("Authorization");
  // 2.如果token不为null,那么设置到请求头中,此处哪怕为null,我们也不进行处理,因为后台会进行拦截
  if (authorization) {
  //后台给登录用户设置的token的键时什么,headers['''']里的键也应该保持一致
    config.headers['Authorization'] = authorization;
  }
  // 3.放行
  return config;
}, error => {
//失败后抛出错误
  Promise.reject(error);
})

第二种:设置defaults.headers.common来设置全局的请求头

c 复制代码
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;

第三种:直接在请求中加

c 复制代码
//get请求
axios.get('/api/data', {   
    headers: {   
        'Authorization': `Bearer ${token}`   
    }   
});
//post请求
axios.post('/api/data', {}, {  
    headers: {  
        'Authorization': `Bearer ${token}`  
    }  
});
相关推荐
零号机2 分钟前
使用TRAE 30分钟极速开发一款划词中英互译浏览器插件
前端·人工智能
疯狂踩坑人26 分钟前
结合400行mini-react代码,图文解说React原理
前端·react.js·面试
Mintopia28 分钟前
🚀 共绩算力:3分钟拥有自己的文生图AI服务-容器化部署 StableDiffusion1.5-WebUI 应用
前端·人工智能·aigc
街尾杂货店&31 分钟前
CSS - transition 过渡属性及使用方法(示例代码)
前端·css
CH_X_M43 分钟前
为什么在AI对话中选择用sse而不是web socket?
前端
Mintopia1 小时前
🧠 量子计算对AIGC的潜在影响:Web技术的未来可能性
前端·javascript·aigc
街尾杂货店&1 小时前
css - word-spacing 属性(指定段字之间的间距大小)属性定义及使用说明
前端·css
忧郁的蛋~1 小时前
.NET异步编程中内存泄漏的终极解决方案
开发语言·前端·javascript·.net
水月wwww1 小时前
vue学习之组件与标签
前端·javascript·vue.js·学习·vue
合作小小程序员小小店2 小时前
web网页开发,在线%商城,电商,商品购买%系统demo,基于vscode,apache,html,css,jquery,php,mysql数据库
开发语言·前端·数据库·mysql·html·php·电商