// 引入axios import BASE from '@tools/base' import store from '@store/index' import axios from 'axios' import { Message } from 'element-ui'; // 创建axios实例 const httpService = axios.create({ withCredentials: false, // 允许携带cookie baseURL: process.env.VUE_APP_API_URL || '/api/', timeout: 23000, // 请求超时时间 - 3s // transformRequest: [ // // `transformRequest` 允许在向服务器发送前,修改请求数据 // // 只能用在 'PUT', 'POST' 和 'PATCH' 这几个请求方法 // // 后面数组中的函数必须返回一个字符串,或 ArrayBuffer,或 Stream // data => { // var fData = new FormData(); // for(let key in data){ // fData.append(key, data[key]); // } // return fData // } // ], //修改请求头信息 headers: { 'Content-Type': 'application/x-www-form-urlencoded', // 'Access-Control-Allow-Origin':'*' // 'Content-Type': 'multipart/form-data' // 'Content-Type': 'application/json;charset=UTF-8' }, }); const httpService_L = axios.create({ withCredentials: false, // 允许携带cookie baseURL: process.env.VUE_APP_API_URL || '/api/', timeout: 210000, // 请求超时时间 - 3s headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, }); // httpService.defaults.withCredentials = true; // 表示跨域请求时是否需要使用凭证 // http request 拦截器 httpService.interceptors.request.use( config => { return config; }, err => { return Promise.reject(err); } ); //长时间相应拦截器 httpService_L.interceptors.response.use( response => { const { data } = response; if(data.code === 200){ } else{ // let rqData = JSON.parse(response.config.data); // 请求数据 // console.error(BASE.getNowTime(), rqData.interfaceid+":"+data.message) Message.warning(data.message); store.commit('loadingStore', false); // 全局的数据 加载中.... - 开关 store.commit('openSubmitDDTag', false); // 防抖动 - 开关 } return data; // 响应正确的数据 }, error => { // 响应错误数据(错误情况分无token信息,错误码) const { response } = error; if (response) { switch (error.response.status) { case 400: error.message = '错误请求'; break; case 401: error.message = '未授权,请重新登录'; break; case 403: error.message = '拒绝访问'; break; case 404: error.message = '请求错误,未找到该资源'; break; case 405: error.message = '请求方法未允许'; break; case 408: error.message = '请求超时'; break; case 500: error.message = '服务器端出错'; break; case 501: error.message = '网络未实现'; break; case 502: error.message = '网络错误'; break; case 503: error.message = '服务不可用'; break; case 504: error.message = '网络超时'; break; case 505: error.message = 'http版本不支持该请求'; break; default: error.message = `未知错误${error.response.status}`; } } else { error.message = "请求超时"; } store.commit('loadingStore', false); // 全局的数据 加载中... - 开关 store.commit('openSubmitDDTag', false); // 防抖动 - 开关 console.error(BASE.getBzDate(new Date().getTime(), 0, "datetime"), error.message) Message.error(error.message + ",请稍候重试!"); } ); // respone拦截器 httpService.interceptors.response.use( response => { const { data } = response; if(data.code === 200){ } else{ // let rqData = JSON.parse(response.config.data); // 请求数据 // console.error(BASE.getNowTime(), rqData.interfaceid+":"+data.message) Message.warning(data.message); store.commit('loadingStore', false); // 全局的数据 加载中.... - 开关 store.commit('openSubmitDDTag', false); // 防抖动 - 开关 } return data; // 响应正确的数据 }, error => { // 响应错误数据(错误情况分无token信息,错误码) const { response } = error; if (response) { switch (error.response.status) { case 400: error.message = '错误请求'; break; case 401: error.message = '未授权,请重新登录'; break; case 403: error.message = '拒绝访问'; break; case 404: error.message = '请求错误,未找到该资源'; break; case 405: error.message = '请求方法未允许'; break; case 408: error.message = '请求超时'; break; case 500: error.message = '服务器端出错'; break; case 501: error.message = '网络未实现'; break; case 502: error.message = '网络错误'; break; case 503: error.message = '服务不可用'; break; case 504: error.message = '网络超时'; break; case 505: error.message = 'http版本不支持该请求'; break; default: error.message = `未知错误${error.response.status}`; } } else { error.message = "请求超时"; } store.commit('loadingStore', false); // 全局的数据 加载中... - 开关 store.commit('openSubmitDDTag', false); // 防抖动 - 开关 console.error(BASE.getBzDate(new Date().getTime(), 0, "datetime"), error.message) Message.error(error.message + ",请稍候重试!"); } ); /* * get请求 * url: 接口地址 * params: 参数,格式如下 * */ export function get(url, params = {}) { return new Promise((resolve, reject) => { httpService({ url: url, method: 'get', params: params, }).then(response => { resolve(response); }).catch(error => { reject(error); }); }); } /* * post请求 * url: 接口地址 * params: 参数,格式如下 * */ export function post(url, params = {}) { return new Promise((resolve, reject) => { httpService({ url: url, method: 'post', data: params, }).then(response => { resolve(response); }).catch(error => { reject(error); }); }); } /* * get请求 长时间 * url: 接口地址 * params: 参数,格式如下 * */ export function get_L(url, params = {}) { return new Promise((resolve, reject) => { httpService_L({ url: url, method: 'get', params: params, }).then(response => { resolve(response); }).catch(error => { reject(error); }); }); } /* * post请求 长时间 * url: 接口地址 * params: 参数,格式如下 * */ export function post_L(url, params = {}) { return new Promise((resolve, reject) => { httpService_L({ url: url, method: 'post', data: params, }).then(response => { resolve(response); }).catch(error => { reject(error); }); }); } /* * post请求 - 超过5s使用的方法 * url: 接口地址 * params: 参数,格式如下 * */ export function postL(url, params = {}) { return new Promise((resolve, reject) => { axios.create({ withCredentials: false, // 允许携带cookie baseURL: process.env.VUE_APP_API_URL || '/api/', timeout: 210000, // 请求超时时间 - 60s //修改请求头信息 headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, })({ url: url, method: 'post', data: params, }).then(response => { resolve(response); }).catch(error => { reject(error); }); }); } export default { get, get_L, post, post_L, postL, }