ajax를 사용시 type을 post를 이용할 때 controller에서 @requestbody를 사용해서 받을 때 아래와 같은 에러가 발생한다. application / x-www-form-urlencoded를 사용할 때 Spring이 그것을 RequestBody로 이해하지 못한다는 것이다다. 따라서 이것을 사용하려면 @RequestBody 주석을 제거해야합니다 .
HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported
클라이언트
$.ajax({
url: "/scheduler/user/usercheck",
type: "post",
data: usercheckvalue,
dataType : "text",
success: function(data,req){
console.log(data);
console.log(req);
},
error: function(){
alert("simpleWithObject err");
}
});
서버 ( @RequestBody UserDTO user --> (어노테이션제거) UserDTO user )
@RequestMapping(value="/usercheck", method=RequestMethod.POST)
@ResponseBody
public String usercheck(UserDTO user){
return "test";
}
contentType을 지정하는 방법
JSON.stringify()을 사용하면서 contentType을 "application/json" 으로 지정하고 @RequestBody를 사용한다. contentType을 "application/json" 으로 지정하지 않으면 RequestBody를 인식 할 수 없다.
클라이언트
$.ajax({
url: "/scheduler/user/usercheck",
type: "post",
data: JSON.stringify(usercheckvalue),
dataType : "text",
contentType: "application/json",
success: function(data,req){
console.log(data);
console.log(req);
},
error: function(){
alert("simpleWithObject err");
}
});
서버
@RequestMapping(value="/usercheck", method=RequestMethod.POST)
@ResponseBody
public String usercheck(@RequestBody UserDTO user){
return "test";
}
##참고
https://zzznara2.tistory.com/760
https://bigfat.tistory.com/103
'Spring' 카테고리의 다른 글
Spring 외부 설정 프로퍼티 (0) | 2020.04.06 |
---|---|
Spring 트랜잭션 (0) | 2020.02.22 |
Spring 파일업로드 (0) | 2020.02.20 |
Spring 버전 업 시 에러 (0) | 2020.01.13 |
Spring mail 보내기 (0) | 2020.01.03 |