jQuery의 $.ajax()를 사용할 때 클라이언트(View)와 서버(Controller)가
맞춰야 할 형식을 정확히 일치시키는 것이 중요하다.Content-Type과 데이터 전송 방식을 일치시키지 않으면
요청이 실패하거나 데이터가 정상적으로 전달되지 않을 수 있다.
$.ajax({
url: "/api/user",
type: "POST", // HTTP 요청 방식 (GET, POST, PUT, DELETE)
contentType: "application/json", // 요청 데이터의 형식
data: JSON.stringify({ username: "json", age: 25 }), // 전송할 데이터
success: function(response) {
console.log("응답:", response);
},
error: function(xhr, status, error) {
console.error("에러:", error);
}
});
jQuery AJAX 요청
$.ajax({
url: "/api/user",
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: { username: "json", age: 25 },
success: function(response) {
console.log("응답:", response);
},
error: function(xhr, status, error) {
console.error("에러:", error);
}
});
Spring Controller (JSON 데이터 처리)
@PostMapping("/user")
public ResponseEntity<String> saveUser(@RequestBody User user) {
System.out.println("받은 데이터: " + user.getUsername());
return ResponseEntity.ok("User saved successfully");
}
jQuery AJAX 요청
$.ajax({
url: "/api/user",
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: { username: "json", age: 25 },
success: function(response) {
console.log("응답:", response);
},
error: function(xhr, status, error) {
console.error("에러:", error);
}
});
Spring Controller (폼 데이터 처리)
@PostMapping("/user")
public ResponseEntity<String> saveUser(
@RequestParam String username,
@RequestParam int age) {
System.out.println("받은 데이터: " + username);
return ResponseEntity.ok("User saved successfully");
}
jQuery AJAX 요청
var formData = new FormData();
formData.append("file", $("#fileInput")[0].files[0]);
$.ajax({
url: "/api/upload",
type: "POST",
contentType: false, // 필수! 자동 설정됨
processData: false, // 필수! 자동 설정됨
data: formData,
success: function(response) {
console.log("응답:", response);
},
error: function(xhr, status, error) {
console.error("에러:", error);
}
});
Spring Controller (파일 처리)
@RestController
@RequestMapping("/api")
public class FileController {
@PostMapping("/upload")
public ResponseEntity<String> uploadFile(@RequestParam MultipartFile file) {
System.out.println("업로드된 파일: " + file.getOriginalFilename());
return ResponseEntity.ok("File uploaded successfully");
}
}