import Axios from 'axios'; import QS from 'qs'; let httpUrl = ''; //正式 if (process.env.NODE_ENV === "development") { // httpUrl = 'http://192.168.1.95:9901'; httpUrl = 'https://proxy.shunzhi.net'; } else { httpUrl = 'https://proxy.shunzhi.net'; } var instance = Axios.create({ timeout: 60000 }); // instance.defaults.baseURL = 'https://proxy.shunzhi.net:51314/'; //正式 instance.defaults.baseURL = httpUrl; //测试 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是过期的,所以在响应拦截器中要对返回状态进行判断 // console.log(config) // // const token = common.getCookie('SXH_token'); // // token && (config.headers.Authorization = token); // return config; // }, // error => { // return Promise.error(error); // }) // // 响应拦截器 instance.interceptors.response.use( response => { console.log(response.data.message) if (response.data.message === '登录已过期') { let prevPage = sessionStorage.getItem('prePage'); if (prevPage == 'center') {//个人中心授权过期 location.href = httpUrl + '/wx/index/toPersonalNoLogin'; } else if (prevPage == 'college') {//高考季授权过期(目前无token,暂时无用) location.href = httpUrl + '/wx/index/subscribe'; } else if (prevPage == 'lecture') {//公益讲座授权过期 location.href = httpUrl + '/wx/index/live'; }else{ location.href = httpUrl + '/wx/index/auth'; } sessionStorage.removeItem('openId') } // 如果返回的状态码为200,说明接口请求成功,可以正常拿到数据 // 否则的话抛出错误 if (response.status === 200) { return Promise.resolve(response); } else { return Promise.reject(response); } }, // 服务器状态码不是2开头的的情况 // 这里可以跟你们的后台开发人员协商好统一的错误状态码 // 然后根据返回的状态码进行一些操作,例如登录过期提示,错误提示等等 // 下面列举几个常见的操作,其他需求可自行扩展 error => { return Promise.reject(error.response); } ); export function get (url, params) { return new Promise((resolve, reject) => { let tokenValue = sessionStorage.getItem('tokenValue') instance.get(url, { params: params, headers: { 'sztoken': tokenValue } }).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) => { let tokenValue = sessionStorage.getItem('tokenValue') instance.post(url, ndata, { headers: { 'sztoken': tokenValue } }).then(res => { resolve(res.data); }) .catch(err => { reject(err.data) }) }); }