import axios from "axios"
|
import { Message } from "element-ui"
|
import Cookies from 'js-cookie'
|
|
// import router from '@/router'
|
|
const Axios = axios.create({
|
responseType: "json",
|
withCredentials: true // 是否允许带cookie这些
|
})
|
|
const getApsPage = () => {
|
// 首页部署在各个环境的端口
|
const loginPathMap = {
|
prod:`//${window.location.hostname}:9080`,
|
test:`//192.168.20.119:9080`,
|
// 想跳到本地启动的登录页的话需要把dev改成你本地项目路径
|
dev: `//192.168.20.119:9080`
|
}
|
|
if (location.href.includes('192.168.20.119')) {
|
return loginPathMap.test
|
} else if (location.href.includes('192.168') || location.href.includes('localhost')) {
|
return loginPathMap.dev
|
} else {
|
return loginPathMap.prod
|
}
|
}
|
|
function getToken(){
|
const localStorageToken = localStorage.getItem('token')
|
const cookieToken = Cookies.get("token")
|
if (localStorageToken){
|
return localStorageToken
|
}else if ( cookieToken) {
|
localStorage.setItem('token',cookieToken)
|
return cookieToken
|
}else {
|
return ''
|
}
|
}
|
|
/* //POST传参序列化(添加请求拦截器) */
|
Axios.interceptors.request.use(
|
(config) => {
|
// 若是有做鉴权token , 就给头部带上token
|
let token = getToken()
|
if (token) {
|
config.headers.Authorization = "Bearer " + token;
|
}
|
|
return config
|
},
|
(error) => {
|
return Promise.reject(error)
|
}
|
)
|
|
/* //返回状态判断(添加响应拦截器) */
|
Axios.interceptors.response.use(
|
(res) => {
|
/* //对响应数据做些事 */
|
if (res.data.code === 200) {
|
return res.data ? res.data : {}
|
} else if (res.data.code === 700001 || res.data.code === 700005) {
|
console.log("客户名称重复")
|
return res
|
} else if([2012,2013,2014,2015].includes(res.data.code)){
|
// JWT鉴权失效 跳转到登录页
|
window.location = getApsPage()+'/login'
|
return Promise.reject(res.data)
|
} else {
|
Message({
|
message: res.data.msg,
|
type: "error",
|
duration: 5 * 1000
|
})
|
return Promise.reject(res.data)
|
}
|
},
|
(error) => {
|
let { message } = error
|
if (message === "Network Error") {
|
message = "后端接口连接异常"
|
} else if (message.includes("timeout")) {
|
message = "系统接口请求超时"
|
} else if (message.includes("Request failed with status code")) {
|
message = "系统接口" + message.substr(message.length - 3) + "异常"
|
}
|
Message({
|
message: message,
|
type: "error",
|
duration: 5 * 1000
|
})
|
return Promise.reject(error)
|
}
|
)
|
|
export default Axios
|