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 相关文章推荐
jQuery 扩展对input的一些操作方法
Oct 30 Javascript
javascript 三种编解码方式
Feb 01 Javascript
JavaScript限定复选框的选择个数示例代码
Aug 25 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
Feb 27 Javascript
早该知道的7个JavaScript技巧
Jun 21 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
May 11 Javascript
微信小程序下拉框搜索功能的实现方法
Jul 31 Javascript
详解微信小程序之提高应用速度小技巧
Jan 07 Javascript
小谈angular ng deploy的实现
Apr 07 Javascript
JS严格模式原理与用法实例分析
Apr 27 Javascript
vue项目中使用bpmn为节点添加颜色的方法
Apr 30 Javascript
vue实现按钮切换图片
Jan 20 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
PHP小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
基于Zend的Config机制的应用分析
2013/05/02 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
php类常量用法实例分析
2015/07/09 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
动态控制Table的js代码
2007/03/07 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
简单谈谈json跨域
2016/03/13 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
浅谈Vue.js
2017/03/02 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
vue3.0 加载json的方法(非ajax)
2020/10/26 Javascript
vue实现防抖的实例代码
2021/01/11 Vue.js
用Python配平化学方程式的方法
2019/07/20 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
python爬虫中url管理器去重操作实例
2020/11/30 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
css3利用transform变形结合事件完成扇形导航
2020/10/26 HTML / CSS
百丽国际旗下购物网站:优购
2017/02/28 全球购物
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
创业计划书中包含的9个方面
2013/12/26 职场文书
人力资源经理自我评价
2014/01/04 职场文书
转让协议书范本
2014/04/15 职场文书
小学生优秀评语
2014/12/29 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
实习证明模板
2015/06/16 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL