我正在开发一个以角度6为前端,以弹簧靴为REST后端的proyect。 (英语不是我的母语,所以我提前为语法道歉。)
一切都很好,直到我在某些方法上出现错误为止。
我正在从前端服务发出一个http.post请求,并从spring boot中得到了一个错误,说不允许使用内容类型的应用程序/文本(其他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;
如何避免这种从对象到函数的转换?
答案 0 :(得分:0)
您要将类作为参数发送给帖子
应该是这样 ‘返回this.http.post(路径,游戏,选项);’
使用小写游戏