首页 > 解决方案 > 使用 Heroku 部署 Spring Boot 和 React 应用程序后,我对 localhost 的所有引用更改为什么

问题描述

我刚刚部署了在前端使用 Spring Boot 和 React 的应用程序。Heroku 应用程序正在运行,我可以看到应该显示的页面,当我提出GET请求时,我会得到正确的响应。但是前端并没有像我在本地运行时那样真正与后端通信。例如,在首页上,您应该能够单击一个按钮并向POST服务器发送请求。

我很确定我知道这个问题的唯一原因,但我不知道如何解决它。客户端中有两个点,服务器中有一行我引用https://localhost:8080/request,或者其他一些 localhost url。这是我的代码中的相关区域。

客户:

await (await fetch('http://localhost:8080/decide', {
      method: 'POST',
      mode: 'cors',
      headers: {
        'Accept': 'application/json',
        'Cache-Control': 'no-cache',
        'Content-Type': 'application/json',
        'Access-Control-Allow-Origin': '*'
      },
      body: JSON.stringify(body),
    })).json();

在我的 package.json 中:

 "proxy": "http://localhost:8080",

在后端:

@RestController
public class DecideController {

  @CrossOrigin(origins = "http://localhost:3000")
  @RequestMapping(value="/decide", method= RequestMethod.POST)
  public ResponseEntity<SimpleNode> decide(@RequestBody Decide decide) {
    SimpleNode currentNode = decide.getNode();
    return new ResponseEntity<SimpleNode>(currentNode, HttpStatus.OK);
  }
}

我只是不确定用什么替换这些引用localhost。我在想我可以把 Heroku 应用程序的 URL 放在那里,但是我不确定客户端/服务器使用哪个端口,或者两者是否相同。我一直在努力找到一个合适的解释来说明放在那里的内容。

localhost希望我真正使用的这些实例是它的唯一问题。如果您需要更多信息或澄清,请告诉我。

标签: reactjsspring-bootherokupackage.json

解决方案


推荐阅读