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 相关文章推荐
索趣科技的答案
Feb 07 Javascript
Jquery的hover方法让鼠标经过li时背景变色
Sep 06 Javascript
angularjs基础教程
Dec 25 Javascript
jQuery中end()方法用法实例
Jan 08 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
Aug 15 Javascript
一个炫酷的Bootstrap导航菜单
Dec 28 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
Jun 12 jQuery
轻松理解vue的双向数据绑定问题
Oct 30 Javascript
Vue动态修改网页标题的方法及遇到问题
Jun 09 Javascript
vue中实现高德定位功能
Dec 03 Javascript
vue路由结构可设一层方便动态添加路由操作
Aug 31 Javascript
vue使用echarts实现折线图
Mar 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源码之explode使用说明
2011/08/05 PHP
shopex主机报错误请求解决方案(No such file or directory)
2011/12/27 PHP
Yii实现多按钮保存与提交的方法
2014/12/03 PHP
Laravel5框架添加自定义辅助函数的方法
2018/08/01 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
Add a Table to a Word Document
2007/06/15 Javascript
两个DIV等高的JS的实现代码
2007/12/23 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
2016/09/01 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
jquery滚动条插件slimScroll使用方法
2017/02/09 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
详解vue嵌套路由-query传递参数
2017/05/23 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
2019/04/02 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
python音频处理用到的操作的示例代码
2017/10/27 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
centos7之Python3.74安装教程
2019/08/15 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
应届毕业生自我评价分享
2013/12/15 职场文书
课外科技活动总结
2014/08/27 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
工作证明英文模板
2014/10/21 职场文书