vue 根据不同环境变量跳转相应地址?
环境变量配置:
NODE_ENV = productionVUE_APP_BASE_URL = https://xxx.com.cn
401跳转的时候调用process.env
http.interceptors.response.use( (response) => {
let noverify = response.config.headers.noverify;
if (noverify) {
const { data } = response;
return data;
} else {
const { data: { data, status = true, error = {} } = {} } = response;
if (!status) {
const msg = error.msg || '服务端执行出错!';
if (error.code === 'REL001') {
return Promise.reject(msg);
} else {
Message.error(msg);
}
return Promise.reject(msg);
}
return data || {};
}
},
(error) => {
if (error.response) {
// The request was made and the server responded with a status code
// that falls out of the range of 2xx
const { status: responseStatus } = error.response;
if (responseStatus === 401) {
window.location = `${process.env.VUE_APP_BASE_URL}/login.html?return_url=${window.location.href}`;
} else if (responseStatus === 403) {
// 没有权限
Message.error('没有权限操作!');
} else {
const msg = error.response?.data?.error?.msg || '服务端接口异常!';
Message.error(msg);
return Promise.reject(new Error(msg));
}
} else {
// Something happened in setting up the request that triggered an Error
console.error(error);
return Promise.reject(new Error('请求出错!'));
}
return Promise.reject(error);
}
);
点击退出的时候也调用了一次
window.location = `${process.env.VUE_APP_BASE_URL}/login.html?return_url=${window.location.href}`;
现在本地测试没问题,到线上环境的时候,输入登陆的时候显示地址没问题,但是点击退出登录后地址就变成http地址就不是process.env,如下图,process.env地址也变成了后面的http地址。
有遇到过的小伙伴吗?
回答:
看起来不像是环境变量的关系嗷,环境变量在编译后会被替换成字符串的,也就是说你的
window.location = `${process.env.VUE_APP_BASE_URL}/login.html?return_url=${window.location.href}
这行代码编译后其实就是
window.location = `${'https://xxx.com.cn'}/login.html?return_url=${window.location.href}
所以如果说
点击退出登录后地址就变成http地址就不是process.env,如下图,process.env地址也变成了后面的http地址。
其实需要检查你的退出登录的业务代码,看看是具体怎么操作的。
以上是 vue 根据不同环境变量跳转相应地址? 的全部内容, 来源链接: utcz.com/p/933440.html