REST API可以作为CORS问题的代理吗?

时间:2018-12-10 15:18:33

标签: node.js angular rest http cors

我的问题如下:

我正在使用Angular开发Web应用程序。 Angular应用程序在客户端的浏览器上运行。按照其逻辑,我的应用程序需要来自 other-domain.com 的数据。 由于CORS政策问题,我无法直接使用XMLHttpRequest()。 (产生数据的Web服务器 other-domain.com 不是我的域,不能添加'Control-Access-Allow-Origins')

所以没有:

Angular === >> other-domain.com(由于CORS而被禁止)

我正在创建一个REST API,该API将从 other-domain.com 获取数据,并使用标头'Access-Control-Allow-Origin':'*'封装此数据,然后再发送到客户端的角度的。

所以我的工作流程变成了:

Angular == >>我的API服务器== >> other-domain.com(之所以允许,是因为在浏览器中未执行对other-domain的请求)

您认为我的想法对每个请求(GET,POST,添加cookie标头)都适用吗?在那种情况下,我正在开发的API充当代理,对吗?

谢谢

1 个答案:

答案 0 :(得分:0)

简短的回答:是的。实际上,这里有packagessites会为您完成此操作。

但是我认为另一个问题是为什么您需要规避CORS限制。毕竟,它正在按预期工作,并且首先存在它是有原因的。

如果您已经有一个后端,是否可以添加一个端点,您的后端将在该端点上呼叫另一个域,并使浏览器仅在您的域内进行通信?

如果您仅执行RESTful GET,并且不透明的请求(无凭据,无cookie等)将满足您的需求,则也可以将fetch api与{mode: 'no-cors'}一起使用;但是,您需要“规避” HttpClient,如果需要支持IE,则需要使用polyfill。