【vue】axios + cookie + 跳转登录方法
axios 部分:
import axios from 'axios'
import cookie from './cookie.js'
// import constVal from './constVal.js' const axiosInstance = axios.create({
timeout: 1000 * 60 * 5
}) axiosInstance.interceptors.response.use(response => {
// 接口数据返回之后response拦截
if (response.status !== 200) {
let message = response.toString() || response.status + ':请求失败'
return Promise.reject(message)
}
let rst = response.data
if (rst && rst.xxx) {
cookie.del('x.xxx.com', '/', 'xxx.com')
location.href = rst.xxx + location.href
}
return response.data
}, err => {
return Promise.reject(err)
}) export default {
get (url, params, config) {
const options = Object.assign({}, config, {
method: 'get',
url,
params
// timeout: 10000,
})
return axiosInstance(options).then(response => {
return response
}).catch(error => {
return Promise.reject(error)
})
},
post (url, params, data, config) {
const options = Object.assign({}, config, {
method: 'post',
url,
params,
data
})
return axiosInstance(options).then(response => {
return response
}).catch(error => {
return Promise.reject(error)
})
},
put (url, params, data, config) {
const options = Object.assign({}, config, {
method: 'put',
url,
params,
data
})
return axiosInstance(options).then(response => {
return response
}).catch(error => {
return Promise.reject(error)
})
},
delete (url, params, data, config) {
const options = Object.assign({}, config, {
method: 'delete',
url,
params,
data
})
return axiosInstance(options).then(response => {
return response
}).catch(error => {
return Promise.reject(error)
})
},
all (...array) {
return Promise.all(array).then(resList => {
return resList
}).catch(error => {
return Promise.reject(error)
})
}
}
cookie 部分:
export default {
get: function (name) {
let r = new RegExp('(^|;|\\s+)' + name + '=([^;]*)(;|$)')
let m = document.cookie.match(r)
return (!m ? null : unescape(m[2]))
},
add: function (name, v, path, expire, domain) {
var s = name + '=' + escape(v) + '; path=' + (path || '/') + (domain ? ('; domain=' + domain) : '') // 默认根目录
if (expire > 0) {
var d = new Date()
d.setTime(d.getTime() + expire * 1000)
s += ';expires=' + d.toGMTString()
}
document.cookie = s
},
del: function (name, path, domain) {
if (arguments.length === 2) {
domain = path
path = '/'
}
document.cookie = name + '=;path=' + path + ';' + (domain ? ('domain=' + domain + ';') : '') + 'expires=Thu, 01-Jan-70 00:00:01 GMT'
}
}
main.js 中引用:
import http from './utils/http.js'
Vue.prototype.http = http // 使用方法为:this.http
【vue】axios + cookie + 跳转登录方法的更多相关文章
- Cookie跳转登录验证码
对于web应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的, 对于系统来说使用验证码可以有效果的防止采用机器猜测方 ...
- Webdriver+Java实现使用cookie跳过登录
Webdriver+Java实现使用cookie跳过登录 Webdriver模拟登录过程中很有可能遇到验证码,最近认真学习了下如何使用cookie直接跳过登录过程. 一.cookie的定义 来源百 ...
- 自动化测试 -- 通过Cookie跳过登录验证码
之前写过一篇博客:自动化测试如何解决验证码的问题. http://www.cnblogs.com/fnng/p/3606934.html 介绍了验证码的几种处理方式,最后一种就是通过Cookie跳转过 ...
- python通过Cookie跳过登录验证码
1.通过浏览器获取登录cookie,找到重要的两个参数“BAIDUID”和“BDUSS”: 2.编写Selenium自动化测试脚本,跳过登录. from selenium import webdriv ...
- 通过Cookie跳过登录验证码【限cookie不失效有用】
验证码,相信每个写web自动化测试的同学来说,都是个头疼的事,怎么办呢? 方法还是有的,先说今天这种方式,通过cookie绕过登录验证码 思路: 需要你通过抓包工具抓到你登录的cookie 接下来开始 ...
- vue axios拦截跳转
第一步:添加需要拦截的页面 { path: '/control', name: 'Control', meta: { requireAuth: true }, 第二步:页面拦截 router.befo ...
- Vue+axios 拦截,超时登录问题
axios.interceptors.request.use(config => config, error => Promise.reject(error)); axios.interc ...
- vue axios路由跳转取消所有请求 和 防止重复请求
直接上干货 在发送第二次请求的时候如果第一次请求还未返回,则取消第一次请求,以保证后发送的请求返回的数据不会被先发送的请求覆盖. 或者是跳转路由的时候取消还未返回的请求 第一步: axios 怎么取消 ...
- vue axios封装以及登录token过期跳转问题
Axios配置JWT/封装插件/发送表单数据 首先请务必已仔细阅读 Axios 文档并熟悉 JWT: 中文文档 JWT 中文文档 安装 npm install axios npm install es ...
随机推荐
- 1级搭建类103-Oracle 12c 单实例 FS(12.2.0.1+RHEL 7)公开
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...
- Spark学习之路 (二)Spark2.3 HA集群的分布式安装[转]
下载Spark安装包 从官网下载 http://spark.apache.org/downloads.html 从微软的镜像站下载 http://mirrors.hust.edu.cn/apache/ ...
- UTF-8与GBK的区别
中文解码提示UnicodeDecodeError,UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 0: inv ...
- Pytest学习10-pytest与unittest的区别
一.用例编写规则 1.unittest提供了test cases.test suites.test fixtures.test runner相关的类,让测试更加明确.方便.可控.使用unittest编 ...
- ubantu安装apache
1.命令安装: sudo apt install apache2 2.检查是否启动了Apache服务 systemctl status apache2 3.开启.关闭和重启服务器 /etc/init. ...
- [ZJOI2008] 骑士 - 基环树dp
一类基环树dp都是这个套路吧 随便拆掉环上的一条边 然后跑树形dp,设\(f[i][0/1]\)表示以第\(i\)个人为根的子树,第\(i\)个人选或不选,能收获的最大值 以断点\(u,v\)为根分别 ...
- BK: Data mining, Chapter 2 - getting to know your data
Why: real-world data are typically noisy, enormous in volume, and may originate from a hodgepodge of ...
- (转)git使用规范
转自:http://www.ruanyifeng.com/blog/2015/08/git-use-process.html 团队开发中,遵循一个合理.清晰的Git使用流程,是非常重要的. 否则,每个 ...
- SDOI2010 粟粟的书架 lg2468(可持久化,前缀和)
题面见https://www.luogu.org/problemnew/show/P2468 然后这道题属于合二为一题,看一眼数据范围就能发现 首先我们先考虑50分,二维前缀和维护一下(反正我不记得公 ...
- jQuery实现隔行变色、悬停变色 ( CSS3伪类选择器:nth-child() )
<title>实现隔行变色</title> <script src="Js/jquery-1.8.0.min.js" type="text/ ...