|
阅读:7594回复:1
根据变量选择动态获取接口域名或者固定域名
今天产品提出一个神奇的需求,接到需求我是懵逼的
要求根据一个变量判断,是请求当前地址栏的域名还是请求固定的配置文件中的url(因为有可能将前端build代码嵌入到后端Java代码中) 其实我是拒绝的!没办法,官大一级压死人,搞!!!! 我的思路是定义一个全局变量,放在index.html之中,然后axios实例化的时候去获取这个变量,根据这个变量来改变我的baseUrl 事实证明思路是可行的,先在public->Index.html中添加js代码,为了不让用户可以浏览器控制台直接操作代码,将我们的代码进行一次代理,设置只读属性,严格模式下会报错,非严格模式下会忽略赋值,详情请自行百度javascript的 对象可读属性设置 Object.defineProperty(window,"myswith",{
value:true,
writable: false,
enumerable: true,
configurable: true
})然后来到我们自己封装的axios文件,在axios.create方法中添加如下代码 // 创建axios实例 const service = axios.create({ baseURL: window.myswith ?process.env.VUE_APP_BASE_API:window.location.protocol + '//' + window.location.host, timeout: Config.timeout, // 请求超时时间 }) 现在我们发起请求的时候就会自动去获取window.myswith的值来判断是直接获取当前域名还是根据配置文件固定的地址 npm run build之后也是生效的,我们直接去dist文件夹中的index.html找到我们最开始添加的可读属性,后续直接 在项目部署之前修改这里的值就可以改变请求的域名了 |
|
|
沙发#
发布于:2020-06-10 14:06
楼主,666
|
|
|