vue+axios全局添加请求头和参数操作


Posted in Javascript onJuly 24, 2020

走登录的接口都会返回一个token值,然后存起来方便之后调接口的时候给后台传过去,传给后台的方式有两种:(具体使用哪种需要和后台商量)

1、放在请求头中

2、放在接口的参数中

1、放在请求头中

下面代码是从本地cookie中拿token

VueCookie:一个用于处理浏览器cookies的简单Vue.js插件.

// 在封装axios的文件中添加拦截器
// 添加请求拦截器,在请求头中加token
service.interceptors.request.use(
 config => {
 // 判断本地的cookie中是否有token
 if (VueCookie.isKey('token')) {
 config.headers.Authorization = VueCookie.get('token')
 } else {
 // 跳转到登录页面(这里使用router,是因为路由文件引入到了此文件里)
 router.push('/login')
 }
 return config
 },
 error => {
 return Promise.reject(error)
 })

这个时候虽然在请求头中放了token,但是后台并拿不到token的值,我们需要在创建axios对象的时候允许请求携带cokie,也可以加到main.js全局里面。

// 放在请求文件中
const service = axios.create({
 baseURL: "http://XXXXXXXXX:XXXX",
 timeout: 10000,
 withCredentials: true // 允许携带cookie
});
// 放在全局main.js中
import axios from "axios";
axios.defaults.withCredentials = true; // 允许携带cookie

2、放在参数中

以下代码是从本地存储localStorage中拿token

// 添加请求拦截器,在参数中加token
service.interceptors.request.use(
 config => {
 // 将token添加到每一个接口的参数中
 // 判断请求的类型:如果是post请求就把默认参数拼到data里面;如果是get请求就拼到params里面
 const token = localStorage.getItem('ISTOKEN')
 if (localStorage.getItem('ISTOKEN')) {
 // 注意:config.method 的判断值必须是小写的post和get
 if (config.method === 'post') {
 config.data = {
  api_token: token,
  ...config.data
 }
 } else if (config.method === 'get') {
 config.params = {
  api_token: token,
  ...config.params
 }
 }
 } else {
 // 跳转到登录页面(这里使用router,是因为路由文件引入到了此文件里)
 router.push('/login')
 }
 return config
 },
 error => {
 return Promise.reject(error)
 })

补充知识:Vue,POST请求头'Content-Type':'application/json;',data上传方法

如下所示:

vue+axios全局添加请求头和参数操作

transformRequest 方法说明axios中文文档

以上这篇vue+axios全局添加请求头和参数操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ajax更新数据后,jquery、jq失效问题
Mar 16 Javascript
JavaScript代码复用模式实例分析
Dec 02 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
May 14 Javascript
浅谈 jQuery 事件源码定位问题
Jun 18 Javascript
jQuery焦点图切换简易插件制作过程全纪录
Aug 27 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
Nov 24 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
Jan 12 Javascript
vue 中固定导航栏的实例代码
Nov 01 Javascript
详解vue 组件
Jun 11 Javascript
javascript读取本地文件和目录方法详解
Aug 06 Javascript
解决vue打包报错Unexpected token: punc的问题
Oct 24 Javascript
vue监听键盘事件的相关总结
Jan 29 Vue.js
vue在响应头response中获取自定义headers操作
Jul 24 #Javascript
vuex存取值和映射函数使用说明
Jul 24 #Javascript
js实现金山打字通小游戏
Jul 24 #Javascript
vuex中store存储store.commit和store.dispatch的用法
Jul 24 #Javascript
js实现滑动滑块验证登录
Jul 24 #Javascript
解决VUEX的mapState/...mapState等取值问题
Jul 24 #Javascript
对vuex中store和$store的区别说明
Jul 24 #Javascript
You might like
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
2010/05/10 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
Vue实现双向绑定的方法
2016/12/22 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
原JS实现banner图的常用功能
2017/06/12 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
Node.js实现一个HTTP服务器的方法示例
2019/05/13 Javascript
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
Python定义一个跨越多行的字符串的多种方法小结
2018/07/19 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
python kafka 多线程消费者&手动提交实例
2019/12/21 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
python飞机大战游戏实例讲解
2020/12/04 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
拉丁舞学习者的自我评价
2013/10/27 职场文书
高中自我鉴定范文
2013/11/03 职场文书
质检部职责
2013/12/28 职场文书
工厂保安员岗位职责
2014/01/31 职场文书
愚人节活动策划方案
2014/03/11 职场文书
《春天来了》教学反思
2014/04/07 职场文书
小班幼儿评语大全
2014/04/30 职场文书
企业党员一句话承诺
2014/05/30 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
2015年库房工作总结
2015/04/30 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL