import axios from 'axios'
/* eslint-disable */
import { Loading,Message } from 'element-ui';
var debug=true
let loadingInstance
let needLoadingRequestCount = 0
let cookieId=''
// 请求拦截器
// axios.defaults.timeout = 6000
// axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'
axios.interceptors.request.use((config) => {
if (config.showLoading) {
if (needLoadingRequestCount === 0) {
loadingInstance = Loading.service({
lock: true,
text: '数据加载中...',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.3)',
})
}
needLoadingRequestCount++
}
return config
},error=>{
return Promise.reject(error)
})
// 响应拦截器
axios.interceptors.response.use((response) => {
if (response.config.showLoading) {
if (needLoadingRequestCount <= 0) return
needLoadingRequestCount--
if (needLoadingRequestCount === 0) {
loadingInstance.close()
}
}
cookieId=getCookie('JSESSIONID')
return response
},err=>{
if(typeof err.response === 'undefined'){
window.location.reload()
}
Message.error('请求错误:'+err)
if (needLoadingRequestCount <= 0) return
needLoadingRequestCount--
if (needLoadingRequestCount === 0) {
loadingInstance.close()
}
})
export default {
get(url,params,callback,showLoading=true){
return axios.get(BASE_URL+url,{params,showLoading}).
then(res=>{
callback && callback(res.data)
}).
catch(err=>{
if (debug) {
console.log('======请求错误======'+err)
}
return null
})
},
post(url,params,callback,config={}){
return axios.post(BASE_URL+url,params,config).
then(res=>{
callback && callback(res.data)
}).
catch(err=>{
if (debug) {
console.log('======请求错误======'+err)
}
return null
})
}
}
function getCookie(name){
var strcookie = document.cookie;
var arrcookie = strcookie.split("; ");
for ( var i = 0; i < arrcookie.length; i++) {
var arr = arrcookie[i].split("=");
if (arr[0] == name){
return arr[1];
}
}
return "";
}
vue ---request
猜你喜欢
转载自blog.csdn.net/weixin_42029487/article/details/84784526
今日推荐
周排行