繁体   English   中英

从客户端应用程序(ReactJs + NodeJs)向Java Web服务发出请求

[英]Making request from client application (ReactJs+NodeJs) to Java web service

我在ReactJs和NodeJS(Express服务器)中有单独的客户端应用程序,而在tomcat中运行的Java应用程序中有Web服务。

我的查询是在进行Web服务调用方面更好的方法。

  1. 一种是从ReactJS直接调用Web服务并获取数据。
  2. 另一种是在Express服务器中调用Web服务。 来自客户端浏览器的请求将转到Express,而Express将调用所有Web服务。

我知道直接调用Web服务的一个问题是跨域策略,可以通过在Java服务器中设置配置来处理。

除此之外,还有什么更好的方法。

根据我的经验,使用UI应用程序的直接调用并避免使用中间服务器会更好。

直接执行此操作的原因是,我们的服务器最终基于IP地址受到很多限制,并且所有请求都来自中间服务器(nodeJS服务器),因此最终服务器的DDOS保护必须有一些例外(我们的节点服务器)可能位于具有动态IP地址的ACS上,因此可能很难管理)。

另外,如果要传递和跟踪最终用户的IP地址,则需要管理Node服务器上的标头(以确保像在原始请求中一样传递它)。

如果来自React应用程序的调用来自来,并且只需在Java服务器上设置CORS,则可以更轻松地管理这种情况。

同样,它更容易直接在UI应用程序上调试它,因此您将只能在一个地方观看响应日志。 否则,您最终可能会调试节点服务器和UI应用程序。

希望这个对你有帮助。

IMO的最佳方法是在Node js中专门为所有Java Web服务创建路由器并充当代理。

假设如果您的网址格式类似于http://domain/java-ws/api那么所有这些请求都将被路由到您的Java服务。

如果您有将请求定向到节点JS的Apache服务器,请使用代理模块配置url模式代理。

浏览器阻止CORS请求是有原因的。 您可以通过在服务器上进行设置来摆脱困境。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM