-
rest api 활용하기HTML, CSS, JavaScript 2021. 11. 5. 01:12반응형
ajax를 이용하여 POST, PUT, DELETE는 어렵지 않게 구현할 수 있다. 그러나 항상 GET으로 json을 받아와서 화면에 어떻게 뿌리는 지 잘 몰라 thymeleaf를 이용하여 렌더링 하곤 했었다. 이를 제이쿼리를 통해 해결했다(물론 자바스크립트만으로도 가능하다)
$(function() { $.ajax({ url: '/api/board', method: 'GET', dataType: 'json' }).done(function(json) { let boardBody = document.getElementById('boardBody'); for (const key in json) { boardBody.innerHTML += '<tr>' + '<td>' + json[key].id + '</td>' + '<td><a href="/' + json[key].id + '">' + json[key].title + '</a></td>' + '<td>' + json[key].content + '</td>' + '<td>' + json[key].writer + '</td>' + '</tr>'; } }) })
.done은 function을 필요로 하는데, 이때 function에 매개변수를 지정해 두면 서버에서 보낸 json 데이터를 받을 수 있다.
하지만 이렇게 하면 모든 페이지에서 get을 실행하여 데이터를 받아온다는 문제가 생긴다. 이는 다음과 같이 해결할 수 있다.
if (document.getElementById("boardBody") !== null) { $(function() { $.ajax({ url: '/api/board', method: 'GET', dataType: 'json' }).done(function(json) { let boardBody = document.getElementById('boardBody'); for (const key in json) { boardBody.innerHTML += '<tr>' + '<td>' + json[key].id + '</td>' + '<td><a href="/' + json[key].id + '">' + json[key].title + '</a></td>' + '<td>' + json[key].content + '</td>' + '<td>' + json[key].writer + '</td>' + '</tr>'; } }) }) }
처음에 조건문으로 특정 id를 찾고, 있으면 그 때 데이터를 받아오게 한다. 이렇게 하면 다른 페이지에서는 이 코드가 작동하지 않는다.
반응형'HTML, CSS, JavaScript' 카테고리의 다른 글
javascript 함수 선언식, 함수 표현식 (0) 2021.11.14 자바스크립트로 댓글 수정 만들기 (0) 2021.11.13 ajax, url 파싱 (0) 2021.09.24 getElementById에서 받은 값 사용법 (0) 2021.09.13