Vue:全局拦截所有请求,并在请求头中添加token - 道祖且长 - 博客园 (cnblogs.com)

util.js

export function sessionSet(user){
let jsonStr=JSON.stringify(user);
sessionStorage.setItem("user",jsonStr);
}
export function sessionGet(){
let jsonStr=sessionStorage.getItem("user");
let user=JSON.parse(jsonStr);
return user;
}
// token设置
export function tokenSet(token){
let jsonStr=JSON.stringify(token);
sessionStorage.setItem("token",jsonStr);
}
// token获取
export function tokenGet(){
let jsonStr=sessionStorage.getItem("token");
let token=JSON.parse(jsonStr);
return token;
}
export function sessionDestroy(){
sessionStorage.setItem("user",null);
}

main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import axios from 'axios'
import qs from 'qs'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css';
import './assets/default.css'
import Message from 'element-ui'; import {
sessionSet,
sessionGet,
sessionDestroy,
tokenSet,
tokenGet,
} from './util.js' Vue.use(ElementUI); Vue.config.productionTip = false //设置axios的基础url部分
axios.defaults.baseURL = "xxx"; // 把axios请求对象挂载到vue.prototype原型对象中,在组件中通过this.xxx直接访问
Vue.prototype.$axios = axios;
Vue.prototype.$qs = qs;
Vue.prototype.$sessionSet = sessionSet;
Vue.prototype.$sessionGet = sessionGet;
Vue.prototype.$sessionDestroy = sessionDestroy;
Vue.prototype.$tokenSet = tokenSet;
Vue.prototype.$tokenGet = tokenGet;
Vue.prototype.$msg = Message; // 添加请求拦截器
axios.interceptors.request.use(function(config) {
console.log(config)
// 在发送请求之前做些什么
// 判断是否存在token,如果存在将每个页面header添加token
if (this.tokenGet()) {
// 排除一些链接加token(除了网上的业务,线下业务不加token)
if (config.url == '/xxx/xxx') {
return config;
} else {
config.headers.Authorization = this.tokenGet();
}
}
return config;
}, function(error) {
router.push('/')
return Promise.reject(error)
}) new Vue({
router,
render: h => h(App)
}).$mount('#app')

vue再请求头加token的更多相关文章

  1. ajax请求头加Token时发生的跨域(CORS)请求问题

    首先描述下问题:需求是在请求头中加入token,我在ajax请求数据时添加了请求头‘Authorization’字段,并添加了响应的token值,在请求数据的时候浏览器报错如下: Request he ...

  2. vue全局设置请求头 (封装axios请求)

    Vue.http.interceptors.push((request, next) => { // 请求发送前的处理逻辑 request.headers.set('Authorization' ...

  3. vue+axios请求头封装

    import { mapMutations } from 'vuex' import axios from 'axios' import { Toast } from 'mint-ui'; impor ...

  4. axios拦截器请求头携带token

    转—— https://github.com/superman66/vue-axios-github/blob/master/src/http.js

  5. 给HttpClient添加请求头(HttpClientFactory)

    前言 在微服务的大环境下,会出现这个服务调用这个接口,那个接口的情况.假设出了问题,需要排查的时候,我们要怎么关联不同服务之间的调用情况呢?换句话就是说,这个请求的结果不对,看看是那里出了问题. 最简 ...

  6. $.ajax应用之请求头headers

    昨天项目中,由于要请求token验证,后台给出的方案是采用请求头返回token数据,给出的API文档是这样的 由于之前一直都是采用请求体发送请求,服务器在应答体李返回数据.和这个不一样: 采用jq的$ ...

  7. vue+vue-resource设置请求头(带上token)

    前言 有这样的一个需求,后台服务器要求把token放在请求头里面 嗯一般是通过data里面通过参数带过去的 第一种方法 全局改变: Vue.http.headers.common['token'] = ...

  8. vue开发之跨域请求,请求头not allowed by Access-Control-Allow-Headers,后端cookie session值取不到(二)

    原因:你本地的请求ajax的get和post请求:如果你的请求头内放一些可用验证数据Token的时候就会存在跨域请求这是浏览器所不允许的问题: 方案一:后台的接口请求模式都写成jsonp请求,前端去调 ...

  9. 02 . 处理axios的三个问题 :设置基路径/axios挂载到vue原型/请求时自动携带token

    //使用API时必须在请求头中使用 Authorization 字段提供 token 令牌 import axios from 'axios' // 处理axios的三个问题 // 处理一:基路径 a ...

  10. vue项目中请求头为applicationx-www-form-urlencoded的参数传递

    当请求接口的请求头如下图所示时, 前端在传参时需要先新建一个URLSearchParams对象,然后将参数append到这个对象中 const params = new URLSearchParams ...

随机推荐

  1. Django中关于Manager的使用

    首先介绍一下 manager 的使用场景,比如我们有一些表级别的,需要重复使用的功能,都可以使用 manager 来实现. 比如我们在前面的笔记中介绍的 model 的 create().update ...

  2. pgsql 数据库密码登录配置

    一.postgreSQL认证文件 pg_hba.conf 配置文件pg_hba.conf的位置,通常情况下的路径是 /etc/postgresql/[VERSION]/main/pg_hba.conf ...

  3. Qt中的串口编程

    串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口.串行接口(Serial Interface) 是指数据一位一位地顺序传送,其特点是通信线路简单,只要 ...

  4. Kubernetes之Pod详解

    1.Pod生命周期 pod创建 1. API Server 在接收到创建pod的请求之后,会根据用户提交的参数值来创建一个运行时的pod对象. 2. 根据 API Server 请求的上下文的元数据来 ...

  5. AD笔记总结

    原理图要点: 1.新建工程, 新建的project是要以后缀PrjPCB2.新建原理图.PCB, 右键project,进行New添加3.新建原理图库.PCB库,右键project, 进行new添加 改 ...

  6. 查看Linux操作系统版本命令

    (一)查看操作系统版本的方法 1.uname -a 可以查看内核版本等信息 Linux test 3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 29 14:49:4 ...

  7. Ajax后台传数组参数,接收不到报错!

    var Gid = ""; var Name = ""; var strGid = []; var strName = []; for (var i = 0; ...

  8. 2022-04-20内部群每日三题-清辉PMP

    1.一个项目已经支出350万美元,现在已经完成400万元美元的工作.该项目的计划价值(PV)为800万美元.主题专家(SME)估算还需要600万美元来完成该项目.完成该项目的技术方法不再有效.当前的完 ...

  9. c语言中位运算符及用法 异或

    a&b:  00000000 00000000   a&b=0x0 a|b : 00000000 01011111   a|b=0x5f a^b : 00000000 01011111 ...

  10. Windows相关产品密钥

    Win7/Win8/Win10系统下Visual Studio 2013各个版本的密钥:Visual Studio Ultimate 2013: BWG7X-J98B3-W34RT-33B3R-JVY ...