import axios from 'axios'
|
import qs from 'qs'
|
import { Notification } from 'element-ui'
|
// import router from '@/router'
|
|
const Axios = axios.create({
|
responseType: 'json',
|
withCredentials: true // 是否允许带cookie这些
|
})
|
|
/* //POST传参序列化(添加请求拦截器) */
|
Axios.interceptors.request.use(
|
config => {
|
// config.data = JSON.stringify(config.data)
|
// let Public = {};
|
// if (
|
// config.method === "post" ||
|
// config.method === "put" ||
|
// config.method === "delete"
|
// ) {
|
// // 序列化
|
// // config.data = qs.stringify(config.data);
|
// // config.data = qs.stringify(Object.assign(Public, config.data));
|
// } else {
|
// config.method = "get";
|
// config.params = Object.assign(Public, config.data);
|
// }
|
// config.headers = {
|
// "X-Requested-With": "XMLHttpRequest",
|
// Accept: "application/json",
|
// "Content-Type": "application/json; charset=UTF-8"
|
// };
|
|
// 若是有做鉴权token , 就给头部带上token
|
let token =
|
sessionStorage.getItem('loginedInfo') &&
|
JSON.parse(sessionStorage.getItem('loginedInfo')).access_token
|
if (token != undefined) {
|
config.headers.Authorization = token
|
}
|
return config
|
},
|
error => {
|
/* Message({
|
showClose: true,
|
message: "提交出错,请联系管理员!",
|
type: "error"
|
}); */
|
return Promise.reject(error)
|
}
|
)
|
|
/* //返回状态判断(添加响应拦截器) */
|
Axios.interceptors.response.use(
|
res => {
|
/* //对响应数据做些事 */
|
if (res.data && res.statusText !== 'OK' && res.status !== 200) {
|
console.log('听说你对相应数据做了些事', res)
|
Notification({
|
title: '',
|
message: res.data.message,
|
type: 'error'
|
})
|
return Promise.reject(res.data)
|
}
|
|
// 登陆超时判断
|
// if ((res.data && !res.data.policeCameravideoIsLoginTimeout) || !res.data.data.policeCameravideoIsLoginTimeout) {
|
// Message({
|
// message: '登录状态信息过期,请重新登录',
|
// type: 'error'
|
// })
|
// router.push({
|
// path: '/'
|
// })
|
// return Promise.reject(res.data)
|
// } else {
|
// window.sessionStorage.setItem('policeCameravideoIsLoginTimeout', JSON.stringify(true))
|
// }
|
return res.data ? res.data : {}
|
|
/* //return res.data ? res.data : {}; */
|
},
|
error => {
|
let errJson: any = {
|
success: false
|
}
|
// 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面
|
if (error && error.response) {
|
switch (error.response.status) {
|
case 400:
|
errJson.status = error.response.status
|
errJson.message = '请求错误(400)'
|
break
|
case 401:
|
errJson.status = error.response.status
|
errJson.message = '未授权,请重新登录(401)'
|
// console.log("标志位:",AuthData.isLoginout)
|
// if (!AuthData.isLoginout) {
|
// Notification({
|
// title:"",
|
// showClose: true,
|
// message: "登录信息失效,请重新登录!",
|
// type: "error"
|
// });
|
// }
|
// AuthData.isLoginout = true
|
|
// todo 返回到登录页
|
// router.push({
|
// path: '/'
|
// })
|
break
|
case 403:
|
errJson.status = error.response.status
|
errJson.message = '拒绝访问(403)'
|
break
|
case 404:
|
errJson.status = error.response.status
|
errJson.message = '找不到请求路径(404)'
|
break
|
case 408:
|
errJson.status = error.response.status
|
errJson.message = '请求超时(408)'
|
break
|
case 500:
|
errJson = error.response.data
|
break
|
// case 501:
|
// errJson.status = error.response.status;
|
// errJson.message = "服务未实现(501)";
|
// break;
|
// case 502:
|
// errJson.status = error.response.status;
|
// errJson.message = "网络错误(502)";
|
// break;
|
// case 503:
|
// errJson.status = error.response.status;
|
// errJson.message = "服务不可用(503)";
|
// break;
|
// case 504:
|
// errJson.status = error.response.status;
|
// errJson.message = "网络超时(504)";
|
// break;
|
// case 505:
|
// errJson.status = error.response.status;
|
// errJson.message = "HTTP版本不受支持(505)";
|
// break;
|
default:
|
errJson.status = error.response.status
|
errJson.message = `连接出错(${error.response.status})!`
|
}
|
|
if (errJson.status >= 400 && errJson.status < 500) {
|
// 跳转错误页面
|
// router.push({
|
// path: "/error",
|
// query: errJson
|
// });
|
} else {
|
// 服务器错误退出系统,弹窗提示
|
// Message({
|
// showClose: true,
|
// message: errJson.message,
|
// type: "error"
|
// });
|
// router.push({
|
// path: "/login"
|
// });
|
}
|
} else {
|
errJson.message = '连接服务器失败!'
|
Notification({
|
title: '',
|
showClose: true,
|
message: '连接服务器失败!',
|
type: 'error'
|
})
|
// router.push({
|
// path: '/login'
|
// });
|
}
|
// 返回 response 里的错误信息
|
return Promise.reject(errJson)
|
}
|
)
|
export default Axios
|