对managedVM上的localhost节点服务器进行应用程序调用

时间:2018-03-01 22:08:49

标签: reactjs deployment google-cloud-platform

我正在使用Nginx提供构建的反应文件。我可以在我的虚拟机IP地址上访问浏览器中的react应用程序。

我在我的VM上运行另一台服务器端口8080,即react应用程序的API。

在我的反应中,我使用像

这样的axios调用
const http = "http://localhost:8080";
..
axios.post(`${http}/api/auth/login`, { credentials }).then(res => res.data.user),

在我访问我的VM的IP地址后,在我的浏览器中,我可以在控制台中看到所谓的axios呼叫转到http://myActualVMIpAddress/api/..而不是{I}路径,而不是我期望的那样。

我已经使用api服务器的localhost检查了路由。

我没有部署经验。如何使react应用程序和api服务器之间的链接工作?

1 个答案:

答案 0 :(得分:0)

将localhost:8080硬编码到客户端JS中并不是一个好主意,当用户加载客户端文件时,他们会尝试在用户计算机上发出请求,这是localhost解析的。

最简单的方法是从api服务器提供客户端文件。如果你想保持这些分开,那么你必须使用你的API服务器的IP(而不是localhost)并设置CORS。