guci-date
Version:
A golden bottle of sake costs ten thousand yuan, and a jade plate costs ten thousand yuan.
53 lines (52 loc) • 1.96 kB
JavaScript
// // 封装axios用于发请求
import axios from 'axios'
import router from '@/router';
import { Message } from 'element-ui';
import apiBaseUrl from "../../config/api";
// // 创建一个新的axios实例
const request = axios.create({
baseURL: apiBaseUrl,
timeout: 99999,
})
// // 添加请求拦截器
request.interceptors.request.use(function (config) {
config.headers["authorization"] = sessionStorage.getItem('tokenInfo') ? sessionStorage.getItem('tokenInfo') : ''
// config.headers["auth"] = localStorage.getItem('tokenInfo')
config.headers["Username"] = JSON.parse(window.localStorage.getItem('admin')).adminNo;
// console.log(config);
return config
}, function (error) {
console.log("请求失败");
// 对错误做处理
return Promise.reject(error)
})
// 添加响应拦截器(注意:函数都有返回值)
request.interceptors.response.use(function (response) {
return response.data
}, function (error) {
// 对响应错误做点什么 普通错误 + 401情况
console.log(error)
// 外面包一层error.response判断可以防止error.response为空 时内部代码报错
if (error.response) {
// 请求拦截器中 判断请求中是否验证token 是否过期 如果过期就返回 -1 跳转登录界面
if (error.code === -1) {
Message.error('登录已过期,请重新登录')
sessionStorage.removeItem('tokenInfo');
router.push('/')
}
if (error.response.status === 402 || error.response.status === 403) {
// 清空token 跳转到登录页 给个提示
Message.error('登录已过期,请重新登录')
// 提交清除token的mutation
sessionStorage.removeItem('tokenInfo');
// 跳转到登录页
router.push('/')
} else {
// 给个提示
Message.error(error.response.data.message)
}
}
return Promise.reject(error)
})
// 导出
export default request