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 + 跳转登录方法的更多相关文章

  1. Cookie跳转登录验证码

    对于web应用来说,大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的, 对于系统来说使用验证码可以有效果的防止采用机器猜测方 ...

  2. Webdriver+Java实现使用cookie跳过登录

    Webdriver+Java实现使用cookie跳过登录   Webdriver模拟登录过程中很有可能遇到验证码,最近认真学习了下如何使用cookie直接跳过登录过程. 一.cookie的定义 来源百 ...

  3. 自动化测试 -- 通过Cookie跳过登录验证码

    之前写过一篇博客:自动化测试如何解决验证码的问题. http://www.cnblogs.com/fnng/p/3606934.html 介绍了验证码的几种处理方式,最后一种就是通过Cookie跳转过 ...

  4. python通过Cookie跳过登录验证码

    1.通过浏览器获取登录cookie,找到重要的两个参数“BAIDUID”和“BDUSS”: 2.编写Selenium自动化测试脚本,跳过登录. from selenium import webdriv ...

  5. 通过Cookie跳过登录验证码【限cookie不失效有用】

    验证码,相信每个写web自动化测试的同学来说,都是个头疼的事,怎么办呢? 方法还是有的,先说今天这种方式,通过cookie绕过登录验证码 思路: 需要你通过抓包工具抓到你登录的cookie 接下来开始 ...

  6. vue axios拦截跳转

    第一步:添加需要拦截的页面 { path: '/control', name: 'Control', meta: { requireAuth: true }, 第二步:页面拦截 router.befo ...

  7. Vue+axios 拦截,超时登录问题

    axios.interceptors.request.use(config => config, error => Promise.reject(error)); axios.interc ...

  8. vue axios路由跳转取消所有请求 和 防止重复请求

    直接上干货 在发送第二次请求的时候如果第一次请求还未返回,则取消第一次请求,以保证后发送的请求返回的数据不会被先发送的请求覆盖. 或者是跳转路由的时候取消还未返回的请求 第一步: axios 怎么取消 ...

  9. vue axios封装以及登录token过期跳转问题

    Axios配置JWT/封装插件/发送表单数据 首先请务必已仔细阅读 Axios 文档并熟悉 JWT: 中文文档 JWT 中文文档 安装 npm install axios npm install es ...

随机推荐

  1. tmp = 2/4;竟然没有发现的

    我还纠结着单目运算符和双目运算符和乘除的一些优先级什么事情. #include "common.h" #include <stdio.h> #include <s ...

  2. Costco这样的超级零售商,能不能干掉电商?

    名创优品创始人叶国富曾说过,Costco只是没有来到中国(大陆),如果它来了,中国现在的零售业全部都会"死光".叶国富的话,似乎一语成箴. 随着Costco正式入华,其正在彻底搅动 ...

  3. Java连载85-集合的Contains和Remove方法

    一.包含与删除两种方法解析 1.boolean contains(Object o);判断集合中是否包含某个元素. package com.bjpowernode.java_learning; imp ...

  4. Codeforces Round #616 (Div. 2) C. Mind Control

    题目链接:http://codeforces.com/contest/1291/problem/C 思路: 我们可以很容易想到,只有前m-1个人才能影响m的选择的大小,后面的人无法影响. 如果所有人都 ...

  5. P5168 xtq玩魔塔 [克鲁斯卡尔重构树+带修莫队]

    P5168 xtq玩魔塔 又是码农题- 利用克鲁斯卡尔重构树的性质 我们就可以得出 \(dep\) 值小的,肯定比 \(dep\) 大的值要优. 于是第二问就可以直接 LCA 求出来了- 至于第三问, ...

  6. 0004 工程配置settings.py

    两个目录的区别: 工程目录是指包含manage.py文件的目录 配置目录是批包含settings.py文件的目录 在配置目录中找到并打工settings.py文件,做以下配置: 01 DEBUG DE ...

  7. Tomcat启动命令行窗口中文乱码

    找到Tomcat安装目录conf/logging.properties文件 添加语句:java.util.logging.ConsoleHandler.encoding = GBK 重启Tomcat

  8. 解决VMware中Ubuntu18.04全屏问题

    在VMware中Ubuntu18.04全屏问题   在虚拟机机中安装完Ubuntu18.04之后界面显示的特别小,默认的好像是800*600分辨率,看着不舒服.先是在设置->设备->显示 ...

  9. Appium appium 通过 adb 无线连接 Android 真机

    一.准备工作 1.准备一台或多台Android设备(如小米,华为),开启USB调试2.Android设备与电脑(Mac或者Windows)在同一个局域网内3.电脑安装好ADB工具 二.具体步骤 1.使 ...

  10. FJUTOJ-3682 LRU算法的实现2 (链表+哈希)

    传送门 此题让我们实现一个LRU的模板类.本题较简便且高效的写法是维护一个std::list和一个std::unordered_map. std::list 与 std::unordered_map ...