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 相关文章推荐
javaScript Array(数组)相关方法简述
Jul 25 Javascript
使用JQUERY Tabs插件宿主IFRAMES
Jan 01 Javascript
读jQuery之二(两种扩展)
Jun 11 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
Apr 12 Javascript
node.js中使用socket.io的方法
Dec 15 Javascript
jQuery异步获取json数据方法汇总
Dec 22 Javascript
浅谈Javascript线程及定时机制
Jul 02 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
Nov 09 Javascript
原生JavaScript实现todolist功能
Mar 02 Javascript
vue开发移动端底部导航条功能
Apr 08 Javascript
vue 输入电话号码自动按3-4-4分割功能的实现代码
Apr 30 Javascript
vue监听滚动事件的方法
Dec 21 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
php 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
jquery实时获取时间的简单实例
2017/01/26 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
Vue基于localStorage存储信息代码实例
2020/11/16 Javascript
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
Python3.8中使用f-strings调试
2019/05/22 Python
Python hashlib模块实例使用详解
2019/12/24 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
教育学习自我评价
2014/02/03 职场文书
全神贯注教学反思
2014/02/03 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
安全环保标语
2014/06/09 职场文书
人口与计划生育目标管理责任书
2014/07/29 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
英文道歉信
2015/01/20 职场文书
税务会计岗位职责
2015/04/02 职场文书
投诉书范文
2015/07/02 职场文书
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL
Python绘画好看的星空图
2022/03/17 Python
Python中三种花式打印的示例详解
2022/03/19 Python