$.ajax({
type: "get",
url: "/ajax/test",
data: {
testNum: test_num,
testString: test_string
},
datatype: "text",
success: function (res) {
console.log('성공, 결과 : ' + res);
},
error: function () {
alert('실패');
}
});
@Controller
public class HomeController {
@GetMapping("/ajax")
public String ajaxTest() {
return "ajax_test";
}
@GetMapping("/ajax/test")
@ResponseBody
public String getAjaxTest(@RequestParam("testNum") long testNum, @RequestParam("testString") String testString) {
String result = String.valueOf(testNum) + testString;
return result;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ajax_test</title>
</head>
<body>
<button type="button" onclick="addBlock();">ajax</button>
<div class="ajax" style="display: flex;">
</div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
var test_num = 5;
var test_string = 'ajax';
function addBlock() {
$.ajax({
type: "get",
url: "/ajax/test",
data: {
testNum: test_num,
testString: test_string
},
datatype: "text",
success: function (res) {
alert('test_num + test_string : ' + res);
const html =
`
<div style="background-color: blue; margin: 5px; width: 100px; height: 100px;">
</div>
`;
$('.ajax').append(html);
},
error: function () {
alert('실패');
}
});
}
</script>
</body>
</html>
위의 코드를 간단히 보면
결과를 보면 위의 설명과 같이 페이지의 재로딩없이 데이터를 콘솔에 출력하고, html태그 요소가 추가되는 것을 볼 수 있다.