Http.post () меняет полезную нагрузку с объекта на функцию - PullRequest
0 голосов
/ 05 сентября 2018

Я разрабатываю проект с угловым 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;

как я могу избежать этого преобразования из объекта в функцию?

1 Ответ

0 голосов
/ 06 сентября 2018

Вы отправляете класс как параметр на почту

Так и должно быть ‘Вернуть this.http.post (путь, игра, настройки);’

с игрой в нижнем регистре

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...