【发布时间】:2018-12-17 16:09:20
【问题描述】:
我正在构建一个电子应用程序,需要在 API 提供者未启用 CORS 的情况下调用 API。通常建议的解决方案是使用反向代理,当使用 node 和 cors-anywhere 像这样在本地运行时,这很简单:
let port = (process.argv.length > 2) ? parseInt (process.argv[2]) : 8080;
require ('cors-anywhere').createServer ().listen (port, 'localhost');
然后可以将应用配置为通过 localhost:8080 上的反向代理代理所有请求。
所以,我的问题是:
-
是否可以在电子应用程序中使用 node 和 cors-anywhere 来创建反向代理?我不想强制应用调用远程服务器。
-
在 Electron 应用程序中是否有更好或标准的方法来执行此操作?我假设我不是第一个遇到 CORS 问题的人。 :)
【问题讨论】:
-
如果您在主进程(即不是渲染器进程)中发出 Web 请求,则无需担心 CORS。您如何以及在何处在提出此类请求?
-
我还没有将我的网络应用程序整合到 Electron 中。它目前只是一个 Ember.js 应用程序,必须使用反向代理,因为它正在浏览器中使用。
-
electron 中的“浏览器”可以设置为不安全模式以忽略 CORS。见stackoverflow.com/questions/30101537/…
-
如果您在主进程中发出 Web 请求,nodejs 不尊重用户代理设置或支持 Windows 证书存储中的证书,因此您的应用程序将无法在某些人的机器上运行。通过主进程请求不是答案!
标签: node.js proxy cors electron reverse-proxy