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 相关文章推荐
国外大牛IE版本检测!现在IE都到9了,IE检测代码
Jan 04 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
Jul 31 Javascript
JS声明变量背后的编译原理剖析
Dec 28 Javascript
JQuery写动态树示例代码
Jul 31 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
Nov 12 Javascript
js实现右键菜单功能
Nov 28 Javascript
javascript实现动态显示颜色块的报表效果
Apr 10 Javascript
js canvas实现擦除效果示例代码
Apr 26 Javascript
Vue的Class与Style绑定的方法
Sep 01 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 Javascript
JS轮播图的实现方法2
Aug 25 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
javascript中关于执行环境的杂谈
2011/08/14 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
2013/04/02 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
Vue实现双向绑定的方法
2016/12/22 Javascript
利用Dectorator分模块存储Vuex状态的实现
2019/02/05 Javascript
ReactRouter的实现方法
2021/01/25 Javascript
使用cx_freeze把python打包exe示例
2014/01/24 Python
python获取本机mac地址和ip地址的方法
2015/04/29 Python
python选择排序算法实例总结
2015/07/01 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
python3实现弹弹球小游戏
2019/11/25 Python
《日月潭》教学反思
2014/02/28 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
南京青奥会口号
2014/06/12 职场文书
幼儿园教师节感谢信
2015/01/23 职场文书
个人工作保证书
2015/02/28 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
怎么用Python识别手势数字
2021/06/07 Python
在Python 中将类对象序列化为JSON
2022/04/06 Python