/**
* http配置
*/
import axios from 'axios'
import qs from 'qs'
import store from '../store/index'
import router from '../router/index'
import {getStore} from 'src/config/cache'
const instance = axios.create();
// axios 配置
//网络连接失败(连接不上)的时候,延迟5s报错吗
instance.defaults.timeout = 120000;
console.log(process.env.NODE_ENV);
if (process.env.NODE_ENV === 'production') {
//配置生产接口域名
instance.baseURL = "http://bt-lzxkm.yunzhenshi.com.cn/lzxk/" //
// instance.baseURL = "http://192.168.14.32:8082/lzxk/" // 这里不加 http:// 会有问题 会拼接 192.168.14.32:8082
} else {
//配置开发接口域名
instance.baseURL = "http://192.168.18.135:8080/" //
// instance.baseURL="http://192.168.18.146:8080/" //
// instance.baseURL="http://192.168.18.142:8080/" //
}
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8'
//把 token 放在请求的头部。
axios.interceptors.request.use = instance.interceptors.request.use
instance.interceptors.request.use(
config => {
//在请求拦截器中配置公共参数 sessionId
//const sessionId = "9999";
// 如果是post请求就把默认参数拼到data里面
// 如果是get请求就拼到params里面
let accountNum = '';
if (getStore('accountNum')) {
accountNum = getStore('accountNum');
}
let accountName = '';
if (getStore('accountName')) {
accountName = getStore('accountName');
}
if (config.method === 'post') {
let data = qs.parse(config.data);
config.data = qs.stringify({
accountNum: accountNum,
accountName: accountName,
...data
});
} else if (config.method === 'get') {
config.params = {
accountNum: accountNum,
...config.params
}
}
return config
},
err => {
return Promise.reject(err)
},
)
// http response 拦截器
instance.interceptors.response.use(
response => {
if (response.data.code == 12105){
console.log("返回过期错误码:"+response.data.code);
alert("登录过期,请重新登录");
router.currentRoute.path !== 'login' &&
router.replace({
path: 'login',
query: {redirect: router.currentRoute.path},
});
return Promise.reject(response.data);
} else if (response.data.code && response.data.code != 1) {
alert(response.data.msg);
return Promise.reject(response.data);
} else {
return response
}
},
error => {
console.log(error);
if (error.response) {
switch (error.response.status) {
case 401:
// 401 清除token信息并跳转到登录页面
store.commit(types.LOGOUT)
// 只有在当前路由不是登录页面才跳转
router.currentRoute.path !== 'login' &&
router.replace({
path: 'login',
query: {redirect: router.currentRoute.path},
})
}
}
return Promise.reject(error);
// return Promise.reject(error.response.data)
},
)
export default instance
vue 文件 http配置 跨域问题 俱全
最新推荐文章于 2024-07-28 22:04:33 发布