import axios from 'axios'
import Qs from 'qs'
import { Message, Loading } from 'element-ui'
// axios.defaults.baseURL = 'http://xx.xxx.xx.xxx:8082/' //服务器域名
axios.defaults.baseURL = window.CONFIG.baseUrl;
axios.defaults.timeout = '10000' //请求超时时间
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;multipart/form-data'
axios.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded'
axios.defaults.headers.get['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'
/**
* request interceptor 请求拦截(请求发出前处理请求)
*/
axios.interceptors.request.use(
config => {
return config
},
error => {
return Promise.reject(error)
}
)
/**
* response interceptor 响应拦截器(处理响应数据)
*/
axios.interceptors.response.use(
response => {
const res = response.data
if (res.state || res.state === 200 || res.code === 200 || res.code === '0000' || res.returnCode === '0000' || res.code === 10000) {
return res
} else {
Message({
message: res.description || 'error',
type: 'error',
duration: 5 * 1000
})
return Promise.reject(res)
}
},
error => {
Message({
message: error.msg,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
},
error => {
Message({
message: error.msg,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
)
/**
* api请求方法
*
* @param {String} method 请求方法
* @param {String} url 接口
* @param {Object} params 提交数据
*/
const apiRequest = (method, url, params) => {
const loading = Loading.service ({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
return new Promise((resolve, reject) => {
axios({
method: method,
url: url,
data: method !== 'get' ? Qs.stringify(params) : null,
params: method === 'get' ? params : null
}).then(res => {
resolve(res)
loading.close()
}).catch(err => {
reject(err)
loading.close()
})
})
}
export default apiRequest;
封装axios请求方法1
猜你喜欢
转载自blog.csdn.net/qq_22182989/article/details/108451817
今日推荐
周排行