export default function (app) { let axios = app.$axios; let options = {} // 基本配置 axios.defaults.timeout = 10000 axios.defaults.baseURL = `http://${process.env.HOST || '192.168.1.124'}:${process.env.PORT || 3000}/api` //axios.defaults.baseURL = 'https://gcb.china0001.com.cn/pubdata' axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded' axios.interceptors.request.use(function (config) { console.log('请求之前做什么') return config }, function (error) { // 请求错误时弹框提示,或做些其他事 return Promise.reject(error) }) axios.interceptors.response.use(function (response) { // 对响应数据做点什么,允许在数据返回客户端前,修改响应的数据 // 如果只需要返回体中数据,则如下,如果需要全部,则 return response 即可 console.log('数据返回客户端前') return response.data }, function (error) { // 对响应错误做点什么 return Promise.reject(error) }) // 封装数据返回失败提示函数--------------------------------------------------------------------------- function errorState (response) { // 隐藏loading // 如果http状态码正常,则直接返回数据 if (response && (response.status === 200 || response.status === 304 || response.status === 400)) { // 如果不需要除了data之外的数据,可以直接 return response.data return response } else { alert('数据获取错误') } } // 封装数据返回成功提示函数--------------------------------------------------------------------------- function successState (res) { // 隐藏loading // 统一判断后端返回的错误码(错误码与后台协商而定) if (res.data.code === '000000') { alert('success') return res } } // 封装axios-------------------------------------------------------------------------------------- // 请求回调 axios.onRequest(config => { console.log('请求回调') //console.log(config) }) // 返回回调 axios.onResponse(res => { console.log('返回回调') //console.log(res) }) // 错误回调 axios.onError(error => { console.log('错误回调') //console.log(error) }) }