A:Electron App 通过接口访问 A 的服务端
B:Web App 通过接口访问 B 的服务端
两者(前端及服务器)都没有源码。
Electron 中访问 Web App 中的 api 时提示跨域,报错。(其实就是我在 开发者工具 的 console 通过 fetch 访问了)
这种情况下的跨域可以解决吗?(无法修改服务端代码)
是否只能通过代理服务器来解决了?
1
rekulas 2023-06-07 22:18:40 +08:00 1
electron 的话你可以通过 node 中转下请求就绕过了
|
3
IvanLi127 2023-06-07 23:32:01 +08:00 via Android
electron 是开源的,chromium 能禁用安全策略,理论上你可以想办法替换一个禁用安全策略的 electron ,然后就没有限制了。
|
4
a132811 2023-06-07 23:41:44 +08:00 1
chrome 系的话,可以通过 extension 修改响应头绕过,就是得安装 cors extension 插件。
或者试下能不能加 proxy 代理,让代理来修改响应的 cors 头 |
5
leaflxh 2023-06-07 23:54:33 +08:00 via Android 1
能改源码的话 electron 记得可以加过滤,然后针对匹配的网址的响应,手动添加 allow-origin 头,改不了的话服务端允许 app://.这个 origin 应该就行
|
6
pdog18 OP 因为都是第三方公司的 app ,所以都改不了源码,感觉似乎只有通过代理服务器(或者使用 Charles 或 Fiddler )来解决了。
不过我一个前端仔对这个也不太了解,可能需要去学习一下了 |
7
pdog18 OP 问了一下 ChatGPT 似乎可以通过 nginx (也就是代理服务器?)来解决,我去学习一下
|