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. OJ19

    1 // we have defined the necessary header files here for this problem. 2 // If additional header fil ...

  2. Win10 ISS Web服务器安装与部署

    Win10 ISS Web服务器安装与部署 安装 ISS 控制面板-->程序-->启用或关闭 Windows 功能-->Internet Information Services 测 ...

  3. ABAP SmartForms开发脚本补丁

    当时因为编辑不舒服找了还挺久的Smartforms开发脚本补丁,这里记录一下 补丁下载路径:http://www.drv5.cn/sfinfo/16341.html 当安装补丁后不再以Word形式展现 ...

  4. ASP.NET Core 6部署到IIS

    1.打开IIS,新建一个网站 2.给新创建的应用程序池,设置为无托管代码,下面那个选经典或集成好像都没问题 3.运行网站,不出意外的话,会报错,提示HTTP 错误 500.19,说明网站目录权限不足, ...

  5. 计算机意外地重新启动或遇到错误windows安装无法继续解决方法

    计算机意外地重新启动或遇到错误windows安装无法继续解决步骤如下: 当win10在安装过程中一直卡在"海内存知己,天涯若比邻"时同样实用 解决方法: 按住shift+f10(或 ...

  6. python学习笔记-初始python(1)

    1.运行程序 python 使用cmd.exe 运行程序.  例子: python +[文件路径] 2.注释 当行注释:# 被注释内容 多行注释:'''被注释内容''',或者""& ...

  7. 【Java】dto转json

    <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifac ...

  8. SQL-建表注释

    ddl 是对表结构的操作 create(创建)命令.alter(修改)命令.drop(删除)dml 是对表数据的操作 insert(插入)命令.update(更新)命令.delete(删除) alte ...

  9. git常用命令查询手册

    默认已经连接到远程仓库的情况下 本地文件夹初始化成git仓库.提交本地仓库并添加注释 git init git add 文件1(文件夹1) 文件2(文件夹2)... git commit -m &qu ...

  10. 计算机网络复习小结(3)-IPv4

    IPv4分组 一个IP分组由首部和数据两部分组成,首部前一部分的长度固定,共20B,是所有IP分组必须具有的.在IP数据报首部中有三个关于长度的标记,一个是首部长度,一个是总长度,一个是片偏移,基本单 ...