import axios from 'axios' import qs from 'qs' // import router from '@/router' const Axios = axios.create({ // baseURL: 'http://192.168.20.10:7003', timeout: 6000, crossDomain: true, // responseType: 'json', }) /* //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.data.message) 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 = { 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)' window.parent.postMessage({ msg: "logout" }, '*') // 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})!` } } else { errJson.message = '连接服务器失败!' console.log("连接服务器失败") // router.push({ // path: '/login' // }); } // 返回 response 里的错误信息 return Promise.reject(errJson) } ) export default Axios