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 相关文章推荐
jquery简单体验
Jan 10 Javascript
Javascript面向对象编程(二) 构造函数的继承
Aug 28 Javascript
js 获取、清空input type="file"的值示例代码
Feb 19 Javascript
js返回前一页刷新本页重载页面
Jul 29 Javascript
JavaScript获取文本框内选中文本的方法
Feb 20 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
Dec 14 Javascript
JS遍历对象属性的方法示例
Jan 10 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
May 12 Javascript
mac上配置Android环境变量的方法
Jul 08 Javascript
vue升级之路之vue-router的使用教程
Aug 14 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
May 13 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
Oct 24 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 whois查询API制作方法
2011/06/23 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
PHP加密解密类实例分析
2015/04/20 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
Element-ui table中过滤条件变更表格内容的方法
2018/03/02 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
pyramid配置session的方法教程
2013/11/27 Python
Python抽象类的新写法
2015/06/18 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
速记Python布尔值
2017/11/09 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
俄罗斯设计师家具购物网站:The Furnish
2019/12/01 全球购物
一套Delphi的笔试题二
2013/05/11 面试题
太太口服液广告词
2014/03/20 职场文书
2014年班干部工作总结
2014/11/25 职场文书
九寨沟导游词
2015/02/02 职场文书
2016年大学生就业指导课心得体会
2015/10/09 职场文书
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android