axios实现拦截器
项目中通常使用token进行用户权限认证,需要在请求的header中添加token信息进行验证,拦截返回的状态码进行跳转或重新登陆,在全局配置这些不妥,所以新建一个axios实例进行项目的配置。
// util.js
import axios from 'axios'
import cookies from 'vue-cookies'
import router from 'vue-router'
export const $axios = axios.create({ // 这里是配置项
timeout: ,
}) // 拦截请求
$axios.interceptors.request.use(
config => {
console.log(config);
let t = cookies.get('t')
if (t) {
config.headers.t = t
} else {
router.replace({path: '/login'})
}
return config
},
err => {
return Promise.reject(err)
}
) // 拦截响应
$axios.interceptors.response.use(
response => {
console.log(response)
return response
},
err => {
console.log(err);
if (err.response) {
switch (err.response.status) {
case :
// 这里写清除token的代码
router.replace({
path: 'login',
query: {redirect: router.currentRoute.fullPath} // 登录成功后跳入浏览的当前页面
})
}
}
return Promise.reject(err)
}
)
使用
import Vue from 'vue'
import {$axios} from './assets/lib/util' Vue.prototype.$http = $axios
axios实现拦截器的更多相关文章
- axios请求,拦截器的使用
1. axios 创建请求 import axios from 'axios' import {Message} from 'element-ui' import router from " ...
- axios的拦截器(Interceptors)
axios 的拦截器:interceptors 如果我们想在请求之前做点什么,用拦截器再好不过了 拦截器一般做什么? 1. 修改请求头的一些配置项 2. 给请求的过程添加一些请求的图标 3. 给请求添 ...
- (vue.js)axios interceptors 拦截器中添加headers 属性
(vue.js)axios interceptors 拦截器中添加headers 属性:http://www.codes51.com/itwd/4282111.html 问题: (vue.js)axi ...
- axios 基于拦截器的取消(重复)请求
axios 基于拦截器的取消(重复)请求 // 添加请求拦截器 axios.interceptors.request.use((config) => { // 准备发请求之前, 取消未完成的请求 ...
- Axios使用拦截器全局处理请求重试
Axios拦截器 Axios提供了拦截器的接口,让我们能够全局处理请求和响应.Axios拦截器会在Promise的then和catch调用前拦截到. 请求拦截示例 axios.interceptors ...
- axios请求拦截器
import axios from 'axios'; // 创建axios实例 let service = null; if (process.env.NODE_ENV === 'deve ...
- vue中axios使用一:axios做拦截器
转载请注明出处: 项目中用到了单点登录,依赖的公司通用的jar包,且项目为前后端分离的方式,为了管理系统的所有请求和 超时管理,用到了axios,做前端请求拦截,并做管理. 其有以下特点: axios ...
- axios 设置拦截器 全局设置带默认参数(发送 token 等)
应用场景: 1,每个请求都带上的参数,比如token,时间戳等. 2,对返回的状态进行判断,比如token是否过期 代码如下: [javascript] view plain copy axios.i ...
- axios请求拦截器(修改Data上的参数 ==>把data上的参数转为FormData)
let instance = axios.create({ baseURL: 'http://msmtest.ishare-go.com', //请求基地址 // timeout: 3000,//请求 ...
随机推荐
- 生成网上下载的EF项目对应的数据库
生成网上下载的EF项目对应的数据库 网上下载的用EF做的小项目,结果没有配有数据库的,用VS打开来看了一下,看到Migrations文件夹,应该可以用EF命令来生成这个数据库了 打开appsettin ...
- 织梦dedecms安全设置详情
第一.安装的时候数据库的表前缀,最好改一下,不用dedecms默认的前缀dede_,可以改成ljs_,随便一个名称即可. 第二.后台登录开启验证码功能,将默认管理员admin删除,改成一个自己专用的, ...
- Vue 创建组件的方式
Vue 创建组件的方式 2018年08月07日 11:10:56 虔诚带着决然 阅读数:1015 版权声明:本文为博主原创文章,未经博主允许不得用做其他商业活动. https://blog.csd ...
- react服务端渲染同构报错Browser history needs a DOM
https://github.com/nozzle/react-static/issues/343 去掉了browserRouter就不报错了,但是又会有其他报错..
- linux中,history命令,显示时间戳?操作人?IP地址?
需求描述: 在linux环境中,有的时候为了审计的需要,要记录谁什么时间从什么IP登录,执行了什么命令,bash的history命令就能够记录这些信息,但是在默认的情况下,是不记录时间的,所以呢,在这 ...
- 【2019年04月09日】A股净资产收益率ROE最高排名
个股滚动ROE = 最近4个季度的归母净利润 / ((期初归母净资产 + 期末归母净资产) / 2). 查看更多个股ROE最高排名. 沈阳机床(SZ000410) - 滚动ROE:251.45% - ...
- Python的循环导入问题
循环导入的最好的解决方法是从架构上优化,即调整模块和模块成员变量的设计.一个好的原则是:可导出的成员变量,都不应该依赖于导入进来的成员变量. 但是在业务开发的过程中,总会遇到通过架构层面解决不了的导入 ...
- 【Jenkins】Jenkins安装
下载rpm包 wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.7.3-1.1.noarch.rpm 安装 rpm -ivh jenkins ...
- 最大团&优化
貌似咕了三个半月了(gym101915里一道),今天又遇到一道(cf1105E),就学了学惹. 最大团定义:图上取尽可能多的点,这些点构成一个完全图. 最大独立集:图上取尽可能多的点,任意两点间不连接 ...
- Number()、parseInt()和parseFloat()的区别
JS中Number().parseInt()和parseFloat()的区别 三者的作用: Number(): 可以用于任何数据类型转换成数值: parseInt(): 函数可解析一个字符串,并返回一 ...