본문 바로가기
prcExp

[2022.08.04] How to sovle error: Unsupported Media Type from ajax?

by injekim97 2022. 8. 4.
반응형

[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);
			}
		}
	});
};

 

반응형

댓글