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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)