Vue 正式环境跨域问题,调用的云端服务,想再调用本地服务,各位大佬,这个怎么搞?

2020 年 11 月 16 日
 asionbo

vue 正式打包后,服务在云端,想同时调用本地某个服务。

5098 次点击
所在节点    Vue.js
40 条回复
sixway
2020 年 11 月 16 日
不知道你想要表达什么意思,
asionbo
2020 年 11 月 16 日
比如 vue 正式访问的是 http://api/v1,同时,我想访问本地的某个服务 http://api/v3,
v1 服务在云端,v3 一定是部署在运行 vue 浏览器的机器上。这种怎么实现
winnerczwx
2020 年 11 月 16 日
后端允许跨域
opengps
2020 年 11 月 16 日
调用本地是指用户的 pc 本地?这时候你直接访问 127.0.0.1 就行了,但是话说回来,你的客户一定本地有站点吗?
looplj
2020 年 11 月 16 日
代理
jinliming2
2020 年 11 月 16 日
@asionbo 你域名都是 api ?
本地改 hosts,域名 api 指向本地 127.0.0.1,然后本地开个 nginx,/v1/ proxy 到远程,通过 IP 反向代理指定 host 头。/v3/ proxy 到本地服务。
除了 nginx,也可以用其他的 proxy 程序,比如 http-proxy
kiwier
2020 年 11 月 16 日
把本地服务内网穿透到公网上
JerryCha
2020 年 11 月 16 日
本地既然运行了一个服务,那让这个服务替你请求不就好了。
或许你们没法插手本地服务的开发?
cccp2020
2020 年 11 月 17 日
最直白让后端设置跨域白名单,随便跨
muzuiget
2020 年 11 月 17 日
反向代理了解一下。
jiangzm
2020 年 11 月 17 日
最好的方法就是本地代理下,可以全部请求转到本地服务器,或者浏览器安装个 SwitchyOmega 设置下需要代理的地址。
RickyC
2020 年 11 月 17 日
可尝试:

打开网站 nGinx 配置文件, 在 Server 的{}, 加入如下代码

#解决远程跨域问题
location /api/ {
proxy_pass http://远程服务器地址 /api/;
}

重启 nGinx 服务后可以用 http://本地地址 /api 访问到远程的 api
dfourc
2020 年 11 月 17 日
@RickyC #12 为什么你的 nGinx 是 G 大写的?
GressJoe
2020 年 11 月 17 日
@galikeoy 哈哈哈哈
yaphets666
2020 年 11 月 17 日
你本机上的服务只有内网能访问到.因为你的本机没有暴露到互联网上去.但是你的前端部署在互联网服务器当中.所以要把你的本机要有公网 IP.不然无法访问,这和代理没有关系.
xylophone21
2020 年 11 月 17 日
跨域跨域,跨的是域名,结果你把最重要的域名信息隐藏了
tikazyq
2020 年 11 月 17 日
楼主百度一下“跨域的几种方式”,以后不要再到 v2 上做伸手党,下次看到直接拿🔨敲头
tikazyq
2020 年 11 月 17 日
估计楼主是指一部分接口调服务端,一部分开发的接口调本地,你都有本地接口了,为啥不直接全部调本地
icanfork
2020 年 11 月 17 日
用了 Vue 的人,感觉连 JavaScript 是什么都不知道了,全世界都只有 Vue,只有 Vue 的解决办法。
利益相关:最早一批 VueJS 用户
Saszr
2020 年 11 月 17 日
看一下 nginx 相关的知识
proxy_pass ?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/725927

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX