vue 根据不同环境变量跳转相应地址?

环境变量配置:

NODE_ENV = production

VUE_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地址。
vue 根据不同环境变量跳转相应地址?

有遇到过的小伙伴吗?


回答:

看起来不像是环境变量的关系嗷,环境变量在编译后会被替换成字符串的,也就是说你的

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

回到顶部