请问下这种情况跨域可以解决吗?

2023-06-07 20:27:35 +08:00
 pdog18

A:Electron App 通过接口访问 A 的服务端

B:Web App 通过接口访问 B 的服务端

两者(前端及服务器)都没有源码。

Electron 中访问 Web App 中的 api 时提示跨域,报错。(其实就是我在 开发者工具 的 console 通过 fetch 访问了)

这种情况下的跨域可以解决吗?(无法修改服务端代码)

是否只能通过代理服务器来解决了?

947 次点击
所在节点    问与答
7 条回复
rekulas
2023-06-07 22:18:40 +08:00
electron 的话你可以通过 node 中转下请求就绕过了
pdog18
2023-06-07 23:12:21 +08:00
@rekulas 哈哈,关键是两个 app 都不是我的,改不了源码
IvanLi127
2023-06-07 23:32:01 +08:00
electron 是开源的,chromium 能禁用安全策略,理论上你可以想办法替换一个禁用安全策略的 electron ,然后就没有限制了。
a132811
2023-06-07 23:41:44 +08:00
chrome 系的话,可以通过 extension 修改响应头绕过,就是得安装 cors extension 插件。

或者试下能不能加 proxy 代理,让代理来修改响应的 cors 头
leaflxh
2023-06-07 23:54:33 +08:00
能改源码的话 electron 记得可以加过滤,然后针对匹配的网址的响应,手动添加 allow-origin 头,改不了的话服务端允许 app://.这个 origin 应该就行
pdog18
2023-06-08 21:58:52 +08:00
因为都是第三方公司的 app ,所以都改不了源码,感觉似乎只有通过代理服务器(或者使用 Charles 或 Fiddler )来解决了。

不过我一个前端仔对这个也不太了解,可能需要去学习一下了
pdog18
2023-06-08 22:02:35 +08:00
问了一下 ChatGPT 似乎可以通过 nginx (也就是代理服务器?)来解决,我去学习一下

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

https://www.v2ex.com/t/946744

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

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

© 2021 V2EX