Vue + axios 访问后台 ip 调用服务的问题

首先我们提出几个问题:

  1. 本地项目启动端口 localhost:8080  , 你想去连接后台开发人员的 ip 调接口, 后台ip+端口号+访问api,比如说是 http://10.220.146.82:8991/dispatch/orderList , 此时必然被引起跨域。就是你使用 localhost:8080 去访问 http://10.220.146.82:8991,浏览器同源策略限制,必须配置跨域。

  2. 当你配置了跨域发现没生效,为什么呢? 此时查看项目使用了 axios.defaults.baseURL = "http://abc.com:8090"。跨域被覆盖了。查看控制台,访问的还是远程路径的请求地址:

  http://abc.com:8090/dispatch/orderList。那么问题来了。

  问题一: axios.defaults.baseURL 优先级是否比 proxyTable 中配置的高?

  问题二: axios.defaults.baseURL 是项目远程服务地址,微服务项目各个模块服务地址都不一样,不可能逐个配置怎么办?

  问题三: 如果用你的服务地址重写了 axios.defaults.baseURL ,你的其他服务(比如登录)就不可用了,登陆不进去,访问不到目标页面怎么办?

  问题四: 如果前端项目使用了 vue + qiankun 的微服务方案,proxyTable  怎么配置?


 

下面对以上问题进行解答:

  问题一: axios.defaults.baseURL 会覆盖 proxyTable 配置的 url。所以 baseURL 是肯定要注释掉的。何时注释?  如果你不会配置 proxyTable 请查看  vuue-cli2.0 请查看https://www.jianshu.com/p/758f2c798f0a  vue-cli3.0 请查看 https://blog.csdn.net/lj90019002/article/details/81116879

  问题二: 部分接口访问可能要牺牲掉。

  问题三: 【登录后再去注释】注释可以解决问题二,问题三。

  问题四:  vue + qiankun 方案项目 proxyTable 在主项目中生效,所以只需要配置主项目。如果你对 vue + qiankun 不了解请查看 https://segmentfault.com/a/1190000021547996

 

  

posted @   monkey-K  阅读(2787)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示