在vue.config.js中
//接口封装
//vue.config.js配置代理请求
proxy: {
'/wy': {
// https://manager.highyundong.com/sport
//代理的地址
target: 'http://10.4.149.24:8003/wy',
ws: true,
changeOrigin: true,
pathRewrite: {
'^/wy': ''
}
}
},
//在封装的接口请求中应用代理时
首先引用
在http.js文件中
import axios from 'axios'
import Vue from 'vue'
const base = '/wy'
instance.interceptors.request.use(config => {
return config
}, error => {
Vue.prototype.$message.error('请求错误');
console.error('请求错误:' + error)
// return Promise.reject(error)
});
instance.interceptors.response.use(res => {
// 请求成功之后的操作,隐藏loading
stores.dispatch('hideLoading')
if (res.ret) {
console.log('跳转1:' + res.redirectUrl)
localStorage.setItem('redirect', true)
//后台配置的请求地址 一般是localhost:8080
window.location.href = res.redirectUrl
} else {
if (response.ret) {
console.log('跳转2:' + response.redirectUrl)
localStorage.setItem('redirect', true)
//window.location.href = response.redirectUrl
//若配置不一样 可以自己定义 从uap地址定向到本机地址
window.location.href = 'http://10.4.130:8001/uap-server/login?service=http://10.4.100.11:8080/wycx'
}else if (response.code === 200) {
if(response.data === null){
return true
}else {
return response.data
}
} else {
// 这里要进行判断是否自行处理,如果自行处理,就不弹窗提示,对外抛出异常
// 如果自行处理,就不弹窗提示,对外抛出异常
Vue.prototype.$message.error(response.msg);
}
}
}, error => {
console.error('请求返回拦截错误:' + error)
if (error && error.response) {
let res = {}
res.code = error.response.status
//throwErr 捕捉服务端的http状态码 定义在utils工具类的方法
res.msg = throwErr(error.response.status, error.response)
Vue.prototype.$message.error(res.msg);
} else {
Vue.prototype.$message.error('请求错误');
}
})
export default Http