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中常见陷阱小结
Apr 27 Javascript
javascript的数组和常用函数详解
May 09 Javascript
node.js中的fs.readSync方法使用说明
Dec 17 Javascript
Javascript中With语句用法实例
May 14 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
Apr 13 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
May 26 Javascript
详解jquery easyui之datagrid使用参考
Dec 05 Javascript
angular.js中解决跨域问题的三种方式
Jul 12 Javascript
vue 实现小程序或商品秒杀倒计时
Apr 14 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
Sep 27 Javascript
使用layui的layer组件做弹出层的例子
Sep 27 Javascript
使用JS location实现搜索框历史记录功能
Dec 23 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
资料注册后发信小技巧
2006/10/09 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
JavaScript中windows.open()、windows.close()方法详解
2016/07/28 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
2016/11/03 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
泛谈JS逻辑判断选择器 || &&
2019/05/24 Javascript
js实现双色球效果
2020/08/02 Javascript
vue中如何添加百度统计代码
2020/12/19 Vue.js
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
Python实现截屏的函数
2015/07/25 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
python实现mean-shift聚类算法
2020/06/10 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
心得体会开头
2014/01/01 职场文书
《口技》教学反思
2014/02/21 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
2014年技术员工作总结
2014/11/18 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
新年祝酒词大全
2015/08/11 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript