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 相关文章推荐
让angularjs支持浏览器自动填表
Nov 10 Javascript
深入分析Javascript跨域问题
Apr 17 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
Dec 25 Javascript
原生js实现吸顶效果
Mar 13 Javascript
javascript 日期相减-在线教程(附代码)
Aug 17 Javascript
Webpack框架核心概念(知识点整理)
Dec 22 Javascript
浅谈vue引入css,less遇到的坑和解决方法
Jan 20 Javascript
JavaScript实现的简单加密解密操作示例
Jun 01 Javascript
vue中关闭eslint的方法分析
Aug 04 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
Oct 31 Javascript
微信小程序自定义头部导航栏(组件化)
Nov 15 Javascript
Vue props中Object和Array设置默认值操作
Jul 30 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编程语言开发动态WAP页面
2006/10/09 PHP
PHP 文件上传全攻略
2010/04/28 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
JavaScript中的console.assert()函数介绍
2014/12/29 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
简单的网页广告特效实例
2017/08/19 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
Node.js模块全局安装路径配置方法
2018/05/17 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
vue+web端仿微信网页版聊天室功能
2019/04/30 Javascript
微信小程序 如何获取网络状态
2019/07/26 Javascript
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
Python类的继承用法示例
2019/01/31 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
python3使用GUI统计代码量
2019/09/18 Python
原生python实现knn分类算法
2019/10/24 Python
Python如何实现动态数组
2019/11/02 Python
python函数不定长参数使用方法解析
2019/12/14 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
自主招生自荐信
2013/12/08 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS