반응형
[2022.08.04] How to sovle error: Unsupported Media Type from ajax?
이번 게시글은 ajax로 호출 할 때 발생하는 원인과 해결방법에 대해 알아보도록 하자.
에러메세지 내용
{
"timestamp": "2022-08-04T01:39:26.369+00:00",
"status": 415,
"error": "Unsupported Media Type",
"trace": "org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'text/plain;charset=UTF-8' not supported\r\n\tat org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:211)\r\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)\r\n\tat org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)\r\n\tat org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument
}
발생 원인
- input data 값 type 지원 X
해결 방법
- ajax 호출 코드에 contentType: 'application/json' 추가
ajax 호출 코드 (내가 사용하는 ajax code)
<%-- ajax script--%>
<script>
var fn_ajax = function(callbackAjax, url, dataType, method, datas) {
if (typeof dataType == "undefined") {
dataType = "json";
}
if (typeof method == "undefined") {
method = "get";
}
// ajax 실행
jQuery.ajax({
url : url,
type : method,
timeout: 30000,
traditional : datas?true:false,
data : datas?datas:{},
contentType: 'application/json',
dataType : dataType,
cache : false,
error : function(e) {
console.log(e.responseText);
},
success : function(data, status) {
if (callbackAjax) {
callbackAjax(data);
// console.log( "Status: " + status );
};
}
});
};
</script>
ajax 호출 코드 (sample)
/* ajax 일반 공통 */
var fn_ajax = function(callbackAjax, url, dataType, method, datas)
{
if (typeof dataType == "undefined")
{
dataType = "json";
}
if (typeof method == "undefined")
{
method = "get";
}
jQuery.ajax({ // ajax 실행
url : url,
type : method,
timeout: 30000,
traditional : datas?true:false,
data : datas?datas:{},
contentType: 'application/json',
dataType : dataType,
cache : false,
error : function(e) {
console.log(e.responseText);
},
success : function(data, status, xhr) {
if (callbackAjax) {
callbackAjax(data);
}
}
});
};
반응형
'prcExp' 카테고리의 다른 글
[2022.08.04] FE - 팝업창 및 버튼 색깔 customizing (0) | 2022.08.04 |
---|---|
[2022.08.04] innerHTML 와 .html (0) | 2022.08.04 |
[2022.08.04] How to sovle error: Unsupported Media Type on Postman? (0) | 2022.08.04 |
[2022.08.02] for loop 와 each문 (JS) (0) | 2022.08.02 |
[2022.08.02] controller(.java) 에서 client인지 server인지 확인 방법? (0) | 2022.08.02 |
댓글