如何通过托管服务器路由我的 Angular API 呼叫?

How can I route my Angular API Calls through the hosting server?

我有一个带有 angular 7 前端和 dotnet core 2.2 API 的应用程序。 API 存在于受保护的公司服务器上,而 angular 前端存在于托管服务器上。前端托管服务器的 ip 在 API 服务器的防火墙上被列入白名单,但由于 API 调用来自用户的 IP 而不是托管服务器的 IP,所有请求都被阻止。

例如,如果用户 1 有 IP A 并从前端应用程序发出请求,它会使用 IP A 而不是 IP B(前端服务器的 IP)访问 API 服务器。然后请求被阻止,因为只有 IP B 被列入白名单。

有办法解决这个问题吗?我可以强制请求来自前端服务器的IP吗?

您可以将 angular 应用程序中的操作详细信息发送到您的托管服务器。然后根据操作细节找出需要调用哪个API。来自 dotnet 核心的 API 调用。并将结果发送回您的客户。因此,您的托管服务器充当 API 和客户端之间的网关。

这也取决于您在做什么托管。如果平台有限制,您可以选择在 NodeJS 中编写此网关。

这是意料之中的,是客户端发出请求而不是服务器。

在托管 Angular 前端的服务器上创建一个简单的代理,它接收来自客户端的 API 请求,然后将它们转发到您的内部服务器。您几乎可以用您的服务器支持的任何语言编写它。

然后更新您的 Angular 应用以指向这个新的 URL 并且对您内部 API 服务器的所有请求都将来自您的白名单 IP。