import Axios from 'axios'; import router from '../router'; import QS from 'qs'; import common from '../common/index'; // 环境的切换 // if (process.env.NODE_ENV == 'development') { // axios.defaults.baseURL = 'https://www.baidu.com';} // else if (process.env.NODE_ENV == 'debug') { // axios.defaults.baseURL = 'https://www.ceshi.com'; // } // else if (process.env.NODE_ENV == 'production') { // axios.defaults.baseURL = 'https://www.production.com'; // } var instance = Axios.create({ timeout: 60000 }); instance.defaults.baseURL = common.httpUrl + 'api/'; instance.defaults.timeout = 60000; instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; // 请求拦截器 // instance.interceptors.request.use( // config => { // // 每次发送请求之前判断vuex中是否存在token // // 如果存在,则统一在http请求的header都加上token,这样后台根据token判断你的登录情况 // // 即使本地存在token,也有可能token是过期的,所以在响应拦截器中要对返回状态进行判断 // const token = common.getCookie('SXH_token'); // token && (config.headers.Authorization = token); // return config; // }, // error => { // return Promise.error(error); // }) // // 响应拦截器 // instance.interceptors.response.use( // response => { // // 如果返回的状态码为200,说明接口请求成功,可以正常拿到数据 // // 否则的话抛出错误 // if (response.status === 200) { // return Promise.resolve(response); // } else { // return Promise.reject(response); // } // }, // // 服务器状态码不是2开头的的情况 // // 这里可以跟你们的后台开发人员协商好统一的错误状态码 // // 然后根据返回的状态码进行一些操作,例如登录过期提示,错误提示等等 // // 下面列举几个常见的操作,其他需求可自行扩展 // error => { // if (error.response.status) { // switch (error.response.status) { // // 401: 未登录 // // 未登录则跳转登录页面,并携带当前页面的路径 // // 在登录成功后返回当前页面,这一步需要在登录页操作。 // case 401: // router.replace({ // path: '/Login', // query: { // redirect: router.currentRoute.fullPath // } // }); // break; // // 403 token过期 // // 登录过期对用户进行提示 // // 清除本地token和清空vuex中token对象 // // 跳转登录页面 // case 403: // Message('登录过期,请重新登录'); // // 清除token // common.deleCookie('SXH_token'); // // 跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面 // setTimeout(() => { // router.replace({ // path: '/Login', // query: { // redirect: router.currentRoute.fullPath // } // }); // }, 1000); // break; // // 404请求不存在 // case 404: // Message('网络请求不存在'); // break; // // 其他错误,直接抛出错误提示 // default: // Message(error.response.data.message); // } // return Promise.reject(error.response); // } // } // ); export function get(url, params) { return new Promise((resolve, reject) => { instance.get(url, { params: params, headers: { 'X-Authorization': common.getCookie('SXH_token') } }).then(res => { resolve(res.data); }).catch(err => { reject(err.data) }) }); } export function put(url, params, type, query = '') { var ndata = type == 'json' ? JSON.stringify(params) : QS.stringify(params); if (type == 'json') { instance.defaults.headers.put['Content-Type'] = 'application/json;charset=UTF-8'; } else if (type == 'file') { instance.defaults.headers.put['Content-Type'] = 'multipart/form-data;' instance.defaults.headers.put['ossPath'] = 'AdmissionsManageSys' } else { instance.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; } return new Promise((resolve, reject) => { instance.put(url + query, ndata, { headers: { 'X-Authorization': common.getCookie('token') } }).then(res => { resolve(res.data); }) .catch(err => { reject(err.data) }) }); } export function post(url, params, type) { var ndata = type == 'json' ? JSON.stringify(params) : QS.stringify(params); if (type == 'json') { instance.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'; } else { instance.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; } return new Promise((resolve, reject) => { instance.post(url, ndata, { headers: { 'X-Authorization': common.getCookie('SXH_token') } }).then(res => { resolve(res.data); }) .catch(err => { reject(err.data) }) }); }