Я разрабатываю проект с угловым 6 в качестве переднего конца и пружинный башмак в качестве заднего конца REST. (Английский не мой родной язык, поэтому я заранее прошу прощения за грамматику.)
Все было хорошо, пока у меня не возникла ошибка в каком-то методе.
Я делал запрос http.post из службы внешнего интерфейса и получал сообщение об ошибке весенней загрузки, в которой говорилось, что приложение / текст с типом содержимого не разрешено (этого не происходит для других методов PostMapping, но независимо от того, что мне удалось) изменить заголовки сообщения с этим кодом:
persistGame(game: Game) {
const path = 'http://localhost:8080/games';
const headers = new Headers();
headers.set('Content-Type', 'application/json; charset=utf-8');
const options = new RequestOptions();
options.headers = headers;
console.log(game);
return this.http.post(path, Game, options);
}
тогда console.log показывает правильный объект, но мой бэкэнд начал жаловаться ""timestamp":"2018-09-05T20:11:04.848+0000","status":400,"error":"Bad Request","message":"JSON parse error: Unrecognized token 'function': was expecting 'null', 'true', 'false' or NaN; nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'function': was expecting 'null', 'true', 'false' or NaN\n at [Source: (PushbackInputStream); line: 1, column: 10]","path":"/games"}"
Когда я проверил полезную нагрузку, я нашел это
"function Game() {
}"
вместо моего объекта ....
мой внутренний метод выглядит так:
@CrossOrigin()
@PostMapping(path = "/games")
public ResponseEntity<Object> createGame(@RequestBody Game game) {
ResponseEntity<Object> output;
String body;
Game gameInBD;
gameInBD = gameService.findByName(game);
if (gameInBD == null)
{
gameService.saveGame(game);
} else
{
/* updates gameInDB fields with game fields and persist gameInDB */
}
output= ResponseEntity.ok(game);
return output;
как я могу избежать этого преобразования из объекта в функцию?