function writeAticle() {
$.ajax({
type: "POST",
url: "/article",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({content: $("#content").val()}),
success: function (response) {
$("#content").val('');
if(confirm("저장된 메시지를 확인하시겠어요?")) {
readAticle(response['id'])
}
}
})
}
@PostMapping("/article")
public Board setBoard(@RequestBody BoardDto boardDto){
return boardService.setBoard(boardDto);
}
- @RequestParam 은 url 상에서 데이터를 찾는다. 따라서 만약 @RequestBody BoardDto boardDto 가 아니라 @RequestParam BoardDto boardDto 이라면 오류가 난다 http://localhost:8080/article?content-content 이런 식의 url이 되어야 성공적으로 실행되는데 비동기식으로 데이터를 전달할 때는 url은 http://localhost:8080/article로 변함이 없고 body에 데이터를 포함하여 전송하기 때문에 @RequestParam 으로는 받을 수 없는 것이다.
public Board setBoard(BoardDto boardDto){
Board board = new Board();
board.setContent(boardDto.getContent());
boardRepository.save(board);
return board;
}
@PostMapping("/article")
public Board setBoard(@RequestBody BoardDto boardDto){
return boardService.setBoard(boardDto);
}
function writeArticle() {
$.ajax({
type: "POST",
url: "/article",
contentType: 'application/json; charset=utf-8',
data: JSON.stringify({content: $("#content").val()}),
success: function (response) {
$("#content").val('');
if(confirm("저장된 메시지를 확인하시겠어요?")) {
readArticle(response['id'])
}
}
})
}
function readArticle(id) {
$.ajax({
type: "GET",
url: `/article/${id}`,
success: function (response) {
console.log(response['content']);
$("#acticle").html(response['content']);
}
})
}
@GetMapping("/article/{id}")
public Board getBoard(@PathVariable Long id){
return boardService.getBoard(id);
}
public Board getBoard(Long id){
return boardRepository.findById(id).get();
}