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 相关文章推荐
jValidate 基于jQuery的表单验证插件
Dec 12 Javascript
javascript创建数组之联合数组的使用方法示例
Dec 26 Javascript
jQuery窗口、文档、网页各种高度的精确理解
Jul 02 Javascript
jQuery前端分页示例分享
Feb 10 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
Aug 14 Javascript
详解handlebars+require基本使用方法
Dec 21 Javascript
简单的JS控制button颜色随点击更改的实现方法
Apr 17 Javascript
微信小程序利用co处理异步流程的方法教程
May 20 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
vue-router重写push方法,解决相同路径跳转报错问题
Aug 07 Javascript
js实现盒子滚动动画效果
Aug 09 Javascript
用JS写一个发布订阅模式
Nov 07 Javascript
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
PHP 批量删除数据的方法分析
2009/10/30 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
php的ajax简单实例
2014/02/27 PHP
php实现refresh刷新页面批量导入数据的方法
2014/12/23 PHP
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
关于this和self的使用说明
2010/08/01 Javascript
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
JS闭包的几种常见形式实例详解
2017/09/16 Javascript
JS实现关键词高亮显示正则匹配
2018/06/22 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
p5.js绘制创意自画像
2019/11/04 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
Python中的hypot()方法使用简介
2015/05/18 Python
Python编程中的异常处理教程
2015/08/21 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
python raise的基本使用
2020/09/10 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
伦敦一卡通:The London Pass
2018/11/30 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
在线实验室测试:HealthLabs.com
2020/05/03 全球购物
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
营销与策划实训报告
2014/11/05 职场文书
2015年医院创卫工作总结
2015/04/22 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
详解MySQL集群搭建
2021/05/26 MySQL
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python
Java中try catch处理异常示例
2021/12/06 Java/Android