HTTP 상태 415 – 지원되지 않는 Media Type
- 작성자 :
- 궁*이
- 작성일 :
- 2019-06-14 12:37:06
- 조회수 :
- 7,650
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
수고하십니다..
@RestController 사용하여 html 페이지로부터 ajax를 통해 json 데이터를 자바로 넘겨 받은 후
처리결과를 생성하여 json 으로 응답하려고 합니다.
근데 request 하면 자꾸만 415 오류가 발생합니다.
구글링, 이곳 묻고답하기 게시판 등 관련 오류에 대한 해결책을 찾고 적용해 봤지만 여전히 오류가 계속 뜨고 응답을 받을 수 없어
질문드립니다.
왜 415 오류가 뜨는 것이며 해결책을 알려주시면 감사하겠습니다...
아래에는
오류 메시지와 제가 작성한 소스 일부 입니다.
감사합니다...
참고로 아래는 fiddler 로 찍어본 내용입니다.
---------------------------- Fiddler 내용 ------------------------------------------
Request Headers
Client
Accept: application/json, text/javascript, */*; q0.01
...
Response Headers
Entity
Content-Type: text/html;charset=utf-8 <== 이렇게 찍혀 나오던데.. 이건 상관 없을까요?
---------------------------- 오류 메시지 ------------------------------------------
<!doctype html><html lang="ko"><head><title>HTTP 상태 415 – 지원되지 않는 Media Type</title><style type="text/css">
...
---------------------------- 설정 내용 ------------------------------------------
springrest-servlet.xml 에 아래 내용 등 추가 (다운로드 > 실행환경 > restful 예제 참고)
----------------------------------------------
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html; charset=UTF-8</value>
</list>
</property>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json; charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
MyTestController.java
---------------------------------------------
@RestController
public class MyTestController {
@RequestMapping(value = "/mytest.do", produces = "application/json;charset=utf-8", method = RequestMethod.POST)
public String mytest (@Requestbody MyTestVO vo) throws Exception {
...
}
}
myetst.html
---------------------------------------------
...
$.ajax({
type : "POST"
, url : "/mytest.do"
, data : JSON.stringify(data)
, dataType: "JSON"
, contentType : "application/json;charset=UTF-8"
, headers : {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
...
});
@RestController 사용하여 html 페이지로부터 ajax를 통해 json 데이터를 자바로 넘겨 받은 후
처리결과를 생성하여 json 으로 응답하려고 합니다.
근데 request 하면 자꾸만 415 오류가 발생합니다.
구글링, 이곳 묻고답하기 게시판 등 관련 오류에 대한 해결책을 찾고 적용해 봤지만 여전히 오류가 계속 뜨고 응답을 받을 수 없어
질문드립니다.
왜 415 오류가 뜨는 것이며 해결책을 알려주시면 감사하겠습니다...
아래에는
오류 메시지와 제가 작성한 소스 일부 입니다.
감사합니다...
참고로 아래는 fiddler 로 찍어본 내용입니다.
---------------------------- Fiddler 내용 ------------------------------------------
Request Headers
Client
Accept: application/json, text/javascript, */*; q0.01
...
Response Headers
Entity
Content-Type: text/html;charset=utf-8 <== 이렇게 찍혀 나오던데.. 이건 상관 없을까요?
---------------------------- 오류 메시지 ------------------------------------------
<!doctype html><html lang="ko"><head><title>HTTP 상태 415 – 지원되지 않는 Media Type</title><style type="text/css">
...
---------------------------- 설정 내용 ------------------------------------------
springrest-servlet.xml 에 아래 내용 등 추가 (다운로드 > 실행환경 > restful 예제 참고)
----------------------------------------------
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html; charset=UTF-8</value>
</list>
</property>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json; charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
MyTestController.java
---------------------------------------------
@RestController
public class MyTestController {
@RequestMapping(value = "/mytest.do", produces = "application/json;charset=utf-8", method = RequestMethod.POST)
public String mytest (@Requestbody MyTestVO vo) throws Exception {
...
}
}
myetst.html
---------------------------------------------
...
$.ajax({
type : "POST"
, url : "/mytest.do"
, data : JSON.stringify(data)
, dataType: "JSON"
, contentType : "application/json;charset=UTF-8"
, headers : {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
...
});
A
안녕하세요.
전자정부 표준프레임워크센터입니다.
컨트롤러에서 반환되는 형식에 따른 컨텐츠 유형은 XML 설정에 되어 있으므로
다른 부분의 설정들 - 컨트롤러의 Produces , JS 의 헤더 등은
제외하시면 해결될것으로 판단됩니다.
다음에 보면 참고하실만한 사항을 찾으시는게 가능할듯 합니다.
https://stackoverflow.com/questions/22566433/http-415-unsupported-media-type-error-with-json/39504606
감사합니다.
,안녕하세요.
전자정부 표준프레임워크센터입니다.
XML 설정을 통해 콘텐츠 유형을 지정되었으므로
컨트롤러에서 리턴하는 형식만 맞춰 준다면
다른 부분 - 컨트롤러의 produces 이나 JS 의 헤더 부분은
제외하시면 문제가 해결되실 것으로 판단됩니다.
다음에 보면 참고하실만한 사항을 찾으시는게 가능할듯 합니다.
https://stackoverflow.com/questions/22566433/http-415-unsupported-media-type-error-with-json/39504606
감사합니다.
전자정부 표준프레임워크센터입니다.
컨트롤러에서 반환되는 형식에 따른 컨텐츠 유형은 XML 설정에 되어 있으므로
다른 부분의 설정들 - 컨트롤러의 Produces , JS 의 헤더 등은
제외하시면 해결될것으로 판단됩니다.
다음에 보면 참고하실만한 사항을 찾으시는게 가능할듯 합니다.
https://stackoverflow.com/questions/22566433/http-415-unsupported-media-type-error-with-json/39504606
감사합니다.
,안녕하세요.
전자정부 표준프레임워크센터입니다.
XML 설정을 통해 콘텐츠 유형을 지정되었으므로
컨트롤러에서 리턴하는 형식만 맞춰 준다면
다른 부분 - 컨트롤러의 produces 이나 JS 의 헤더 부분은
제외하시면 문제가 해결되실 것으로 판단됩니다.
다음에 보면 참고하실만한 사항을 찾으시는게 가능할듯 합니다.
https://stackoverflow.com/questions/22566433/http-415-unsupported-media-type-error-with-json/39504606
감사합니다.