나는 JSON 으로 오랫동안 엉망이되어 텍스트로 밀어 내고 아무도 아는 적이 없지만 (내가 아는) 아무도 해치지 않지만 제대로 일을 시작하고 싶습니다.
나는 보았다 그래서 json으로 콘텐츠 형식에 대한 많은 사칭 “표준”
application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json
그러나 어느 것이 맞습니까? 보안 및 브라우저 지원 문제가 서로 다릅니다.
비슷한 질문이 있다는 것을 알고 있습니다 .JSON이 REST API에서 반환되면 어떤 MIME 형식입니까? 하지만 좀 더 구체적인 답변을 원합니다.
답변
JSON 텍스트의 경우 :
application/json
JSON 텍스트의 MIME 미디어 유형은
application/json
입니다. 기본 인코딩은 UTF-8입니다. (출처 : RFC 4627 ).
들어 JSONP 콜백 (실행 가능한 자바 스크립트) :
application/javascript
다음은 댓글에 언급 된 관련 블로그 게시물입니다.
답변
IANA 는 JSON의 공식 MIME 유형을로 등록했습니다 application/json
.
없는 이유에 대해 물었을 때 text/json
, 크록 포드는 JSON 말했다 것으로 보인다 정말 자바 스크립트도 텍스트하지 않고 또한 IANA는 가능성이 배부했다 application/*
보다 text/*
.
추가 자료 :
답변
답변
물론 JSON에 대한 올바른 MIME 미디어 유형은입니다 application/json
. 그러나 애플리케이션에서 어떤 유형의 데이터가 예상되는지 알아야합니다.
예를 들어 Ext GWT를 사용 하고 서버 응답은 텍스트 / html 로 이동해야 하지만 JSON 데이터를 포함 해야합니다 .
클라이언트 측, Ext GWT 양식 리스너
uploadForm.getForm().addListener(new FormListenerAdapter()
{
@Override
public void onActionFailed(Form form, int httpStatus, String responseText)
{
MessageBox.alert("Error");
}
@Override
public void onActionComplete(Form form, int httpStatus, String responseText)
{
MessageBox.alert("Success");
}
});
application / json 응답 유형 을 사용하는 경우 브라우저에서 파일을 저장하도록 제안합니다.
Spring MVC를 사용하는 서버 측 소스 코드 스 니펫
return new AbstractUrlBasedView()
{
@SuppressWarnings("unchecked")
@Override
protected void renderMergedOutputModel(Map model, HttpServletRequest request,
HttpServletResponse response) throws Exception
{
response.setContentType("text/html");
response.getWriter().write(json);
}
};
답변
JSON :
URL에 전달 된 쿼리 매개 변수에 따라 응답이 동적으로 생성됩니다.
예:
{ "Name": "Foo", "Id": 1234, "Rank": 7 }
컨텐츠 타입: application/json
JSON-P :
패딩이있는 JSON. 응답은 함수 호출이 감싸 진 JSON 데이터입니다.
예:
functionCall({"Name": "Foo", "Id": 1234, "Rank": 7});
컨텐츠 타입: application/javascript