场景还原:
Vue2项目中在生产环境调用其他服务器请求地址时候会在请求地址默认加上一串当前浏览器域名
比如生产环境:http://123.com.cn;
生产环境服务器:http://789/production:20;
请求地址:http://789/production:21/postrRequest;
在生产环境发起请求时候请求地址会变为:http://123.com.cn/'http://789/production:21'/postrRequest;
配置:
请求地址是在.env.production文件中的requestUrl
请求发起是直接使用request.post(`${process.env.requestUrl}/postrRequest`).post()
解决过程:
在网上找了一些,但看起来不符合我的应用场景,所以记录一下
首先排除错误原因,请求方式是对的,request方法也是单独写的,所以只可能是请求地址出问题了;
参考vue-cli文档 文档地址
错误原因:
因为.env.production 配置文件中的requestUrl多接了一个空格;
严格来说 一个环境文件只包含环境变量的“键=值”对;
所以一个空格都不能多,不然vue-cli 就解析不到地址,只能解析出来是一串字符串,因此在request请求时候地址就变字符串了
.env.production配置项
# 注意引号前后都不能有空格
requestUrl = 'http://789/production:21'