Я только что развернул свое приложение, которое использует Spring Boot и React на внешнем интерфейсе. Приложение Heroku работает, я вижу страницу, которая должна отображаться, и когда я делаю запрос GET
, я получаю правильный ответ. Но интерфейс на самом деле не взаимодействует с бэкэндом, как это было, когда я запускал оба локально. Например, на первой странице вы сможете нажать кнопку, и она отправит на сервер запрос POST
.
Я почти уверен, что знаю причину only для этоговопрос но я не знаю как это исправить. В клиенте есть две точки и одна строка на сервере, где я ссылаюсь на https://localhost:8080/request
, или на какой-либо другой URL-адрес localhost. Вот связанные области в моем коде.
Клиент:
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
. Я думал, что смогу поместить туда URL приложения Heroku, но тогда я не уверен, какой порт использовать для клиента / сервера или будет ли он одинаковым для обоих. Я изо всех сил пытался найти достойное объяснение того, что туда поставить.
Надеюсь, эти случаи, когда я использую localhost
, на самом деле это проблема only . Если вам нужна дополнительная информация или разъяснения, дайте мне знать.