来自 Angular http$ 的 Localhost 调用仅在 W2k8 R2 本地有效
Localhost call from Angular http$ only works locally in W2k8 R2
我正在尝试在 Windows 2008 R2(不要怪我)上部署 angular 前端,该前端在同一服务器但不同的端口上调用 JAVA REST。如果我从服务器浏览,一切正常,但如果我从另一台计算机尝试,则一切正常。
发生的情况是 angular 尝试使用本地主机从客户端计算机而不是服务器调用服务器。
如果我将 localhost 替换为服务器的 IP 地址,它可以在我网络内的另一台计算机上运行,但不能从外部运行。
这不是 CORS 或防火墙(已关闭)的问题,我已经尝试弄乱主机文件,尝试使用 IIS 和 nginx。
我的问题是:-如何在服务器而不是客户端中将对本地主机的请求强制发送到 "stay"?
如果您试图让应用程序调用本地 api(仅对服务器可见),则无法通过 angular 应用程序进行调用。 Angular 在您的浏览器中运行,因此当您打开网页时,应用程序会在您的浏览器中启动 运行,这意味着您提供给应用程序的上下文必须完全 public,并且也许用令牌访问或类似的东西门控。
如果您无法创建 java REST 服务 public 以便应用程序可以从任何地方调用它,我想您可以解决此问题的唯一方法是提供另一项服务是 public,由您的 angular 应用程序调用,它调用此 java REST 端点。
作为一般经验法则,您应该记住,您可以从浏览器查看的任何应用程序 - 如果它们是使用异步-java脚本库编码的,则喜欢 angular / reach / knockout等.. 基本上是 public,因此可以跟踪他们进行的服务调用,作为服务器端呈现的网页(asp.net MVC / JSP with Java)可以进行服务器调用,客户端不会看到。
我正在尝试在 Windows 2008 R2(不要怪我)上部署 angular 前端,该前端在同一服务器但不同的端口上调用 JAVA REST。如果我从服务器浏览,一切正常,但如果我从另一台计算机尝试,则一切正常。
发生的情况是 angular 尝试使用本地主机从客户端计算机而不是服务器调用服务器。 如果我将 localhost 替换为服务器的 IP 地址,它可以在我网络内的另一台计算机上运行,但不能从外部运行。
这不是 CORS 或防火墙(已关闭)的问题,我已经尝试弄乱主机文件,尝试使用 IIS 和 nginx。
我的问题是:-如何在服务器而不是客户端中将对本地主机的请求强制发送到 "stay"?
如果您试图让应用程序调用本地 api(仅对服务器可见),则无法通过 angular 应用程序进行调用。 Angular 在您的浏览器中运行,因此当您打开网页时,应用程序会在您的浏览器中启动 运行,这意味着您提供给应用程序的上下文必须完全 public,并且也许用令牌访问或类似的东西门控。
如果您无法创建 java REST 服务 public 以便应用程序可以从任何地方调用它,我想您可以解决此问题的唯一方法是提供另一项服务是 public,由您的 angular 应用程序调用,它调用此 java REST 端点。
作为一般经验法则,您应该记住,您可以从浏览器查看的任何应用程序 - 如果它们是使用异步-java脚本库编码的,则喜欢 angular / reach / knockout等.. 基本上是 public,因此可以跟踪他们进行的服务调用,作为服务器端呈现的网页(asp.net MVC / JSP with Java)可以进行服务器调用,客户端不会看到。