서버로 요청 날리는 법
1. 주소창에 url 기입(GET)
2. <form>전송 (GET,POST)
3. AJAX(GET,POST,PUT,DELETE 등)
AJAX - 새로고침 없이 서버로 요청을 날리는 자바스크립트 코드
ajax 사용법
<script>
document.querySelectorAll('.btn')[0].addEventListener('click', function () {
fetch('/test1', {
method : 'POST',
headers : {'Content-Type' : 'application/json'},
body : JSON.stringify({name : "kim"})
})
})
</script>
button 누르면 새로고침 없이 데이터 전송(body) 및 요청 전달
@PostMapping("/test1")
String test1(@RequestBody Map<String, Object> body){
System.out.println(body);
return"redirect:/list";
}
fetch('test1?이름=값&이름=값') (GET)형태로도 전송 가능
<span onclick="fetch()"></span>과 같이 onclick 안에 js 코드 집어넣을 수 있음, thymeleaf 변수도 js 안에서 사용 가능
<span onclick="fetch(`/item?id=[[${i.id}]]`, {method : 'DELETE'})">🗑️</span>
thymeleaf 변수를 js내에서 사용하려면 [[${i.id}]]와 같은 문법 사용
@DeleteMapping("/item")
ResponseEntity<String> deleteItem(@RequestParam Integer id){
itemRepository.deleteById(id);
return ResponseEntity.status(200).body("delete complete");
}
<span onclick="fetch('/item?id=[[${i.id}]]', { method : 'DELETE' } )
.then(r => r.text())
.then(result => { 서버응답이 오면 실행할 코드 })
">🗑️</span>
result 같은 변수에는 서버가 보낸 자료가 들어있음
서버가 보내주는게 문자 자료형이면 r.text() 쓰면 됨
서버가 보내주는게 List나 Map 자료형이면 r.json() 붙여야함
then 안에서 window.location.reload() 이런거 쓰면 새로고침
e.parentElement.parentElement.style.display = 'none' 하면 지금 누른 버튼의 부모의 부모 태그를 안보이게 함
url 파라미터 형식으로도 서버에 데이터 전송 가능
'Project > Spring' 카테고리의 다른 글
로그인 기능 (0) | 2025.03.25 |
---|---|
로그인 방식 (0) | 2025.03.24 |
상품 추가 기능/예외 처리/수정 기능 (0) | 2025.03.24 |
MySQL Database 호스팅 (0) | 2025.03.23 |
Thymeleaf 사용 (0) | 2025.03.23 |