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 相关文章推荐
利用404错误页面实现UrlRewrite的实现代码
Aug 20 Javascript
JavaScript 以对象为索引的关联数组
May 19 Javascript
jquery点击缩略图切换视频播放特效代码分享
Sep 15 Javascript
简单实现JS倒计时效果
Dec 23 Javascript
原生和jQuery的ajax用法详解
Jan 23 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
Mar 24 jQuery
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
Sep 15 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
Oct 27 Javascript
浅谈js获取ModelAndView值的问题
Mar 28 Javascript
jQuery中将json数据显示到页面表格的方法
May 27 jQuery
jQuery实现参数自定义的文字跑马灯效果
Aug 15 jQuery
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安装攻略:常见问题解答(二)
2006/10/09 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
2017/08/01 PHP
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
JQuery循环滚动图片代码
2011/12/08 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
python实现根据月份和日期得到星座的方法
2015/03/27 Python
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
深入学习Python中的装饰器使用
2016/06/20 Python
python判断设备是否联网的方法
2018/06/29 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
如何对python的字典进行排序
2020/06/19 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
个人租房协议书
2014/04/09 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android