Spring
HttpMediaTypeNotSupportedException
pooney
2020. 1. 15. 23:03
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