axios.defaults.timeout = 5000; //响应时间 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; //配置请求头 axios.defaults.baseURL = 'http://192.168.0.191:8089/erp/'; //配置接口地址 // axios.defaults.baseURL = 'http://192.168.0.158:5000/erp'; //配置接口地址 let requestLoading = function(){ if($('.loading').length === 0){ $(document.body).append(`<div class="loading"> <span class="loading-text"></span></div>`); } }; //添加请求拦截器 axios.interceptors.request.use((config) => { // console.log(config) if(config.url!=='/updatetoken'){ //请求loading界面。 requestLoading(); } //在发送请求之前做某件事 if(config.url !== '/login'){ config.headers['Authorization'] = `${localStorage.getItem('token_type')} ${localStorage.getItem('access_token')}` } if(config.method === 'post'){ config.headers['Accept'] = 'application/json'; config.headers['Content-Type'] = 'application/json'; } // console.log(config) return config; },(error) =>{ $('.loading').remove(); //console.log('错误的传参') // console.log(error.response) // console.log(error.message) // console.log(error.config) // return Promise.reject(error); let err = ''; if (error.response) { err = error.response; } else { err = {response:{data:{detail:'网络异常!'}}}; } return Promise.reject(err); }); //返回状态判断(添加响应拦截器) axios.interceptors.response.use((res) =>{ $('.loading').remove(); //对响应数据做些事 if(!res.data.success){ return Promise.resolve(res); } return res; }, (error) => { $('.loading').remove(); // console.log(error.response) // console.log(error.message) // console.log(error.config) if (error.response) { return Promise.reject(error); } else { let err = {response:{data:{detail:'网络异常!'}}}; return Promise.reject(err); } }); //返回一个Promise(发送post请求) Vue.prototype.$fetchPost = function(url, params,type) { return new Promise((resolve, reject) => { let postPrams = {method: "post", url, data: params,}; if(type === 'object'){ postPrams['params'] = params; } axios(postPrams) .then(response => { resolve(response); }) .catch((error) => { reject(error) }) }) }; //返回一个Promise(发送put请求) Vue.prototype.$fetchPut = function(url, params) { return new Promise((resolve, reject) => { axios({method: "put", url, data: params,}) .then(response => { resolve(response); }) .catch((error) => { reject(error) }) }) }; ////返回一个Promise(发送get请求) Vue.prototype.$fetchGet = function(url, params) { return new Promise((resolve, reject) => { axios({method: "get", url, params: params,}) .then(response => { resolve(response) }) .catch((error) => { reject(error) }) }) }; //返回一个Promise(发送delete请求) Vue.prototype.$fetchDelete = function(url, params) { return new Promise((resolve, reject) => { axios({method: "delete", url, params: params,}) .then(response => { resolve(response) }) .catch((error) => { reject(error) }) }) }; //返回一个Promise(发送axios请求) Vue.prototype.$fetchAxios = function(method,url,params,type) { return new Promise((resolve, reject) => { let postPrams = {method: method, url, data: params,}; if(type === 'object'){ postPrams['params'] = params; delete postPrams['data'] }else{ postPrams['data'] = params; delete postPrams['params'] } axios(postPrams) .then(response => { resolve(response) }) .catch((error) => { reject(error) }) }) };