1 와 [JSON] # 39, ve been i& 메싱 수립하였습니다 추진 일정 기간 동안, 그냥 텍스트로 아웃해야 hasn& # 39 이 때문에 다친 사람은 (제가 알기로) 이지만, t, d # 39 I& 시작하게 하는 것을 하라.
그래서 내가 봐온 많은 의도된 " standards"; json 의 콘텐츠 형식:
application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json
그러나 어느 것이 올바른 또는 best? 내가 할 수 있는 다양한 보안 및 브라우저 지원 문제를 확하려 그들 사이에 있다.
Json 의 텍스트:
>. '응용 프로그램 / json 의 MIME 용지타입 JSON 텍스트는' . 기본값입니다 인코딩은 UTF-8. (출처: RFC 4627).
장치당 제슨프 (자바스크립트 실행 가능한) 를 콜백하는:
>. '응용 프로그램 / javascript'
다음은 언급된 것과 관련이 있는 블로그 포스트를 설명.
[3]: http://jibbering.com/blog/? p = 514
[IANA] (http://www.iana.org) 는 MIME 유형은 '' 로 공식 등록된 애플리케이션 및 json JSON .
왜안돼요 묻자 ',' text / json 크록 포드, 그리고 IANA 는 JSON 은 별로 JavaScript disk_b_s10database 것으로 보인다 "고 말했다 '손' 보다 훨씬 높은 것으로 아웃해야 text/ application/ '텍스트'.
더 많은 자료:
물론 '는' 응용 프로그램 / json JSON 대한 올바른 MIME 용지타입 있지만, 어떤 종류의 데이터를 it& # 39 의 응용 프로그램에서 실현하는 데 필요한 것으로 보인다.
예를 들어, 내가 사용하는 연장 GWT 그러나 map_layer JSON 데이터 및 서버 응답을 text / html 로 들어가야 합니다.
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");
}
});
응용 프로그램 사용 시 / json 반응 = 유형, 브라우저 저장하라는 제안됩니다 파일.
소스 코드를 사용하여 서버측 스니핏 [Spring MVC] [2] *
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);
}
};
[2]: http://en.wikipedia.org/wiki/Spring_Framework # Model-view-controller_framework
{ "Name": "Foo", "Id": 1234, "Rank": 7 }
functionCall({"Name": "Foo", "Id": 1234, "Rank": 7});
데비안 파일 또는 unbuntu 사용하는 경우 진실이며당신이 .j슨 경배하되 Apache 를 사용하여 파일을 통해 정확한 내용 유형을 경배하되 할 수 있습니다. 나는 이 일을 주로 사용하는 싶어서 Firefox extension 제슨비에프
아파치 모듈 [mod_mime] (http://httpd.apache.org/docs/current/mod/mod_mime.html) 이 쉽게 할 수 있도록 할 계획이다. 그러나 이처럼 unbuntu /etc/mime.types 선 및 추가 파일을 편집할 수 있어야 합니다.
application/json json
Apache 다시 시작합니다.
sudo service apache2 restart
[2]: http://en.wikipedia.org/wiki/Ext_% 28JavaScript_library% 29
Json 은 you& 않으면 적절한 컨텐츠를 유형의 애플리케이션 및 json ',' # 39 를 사용하여 제슨프 로 하고, 패딩, 이는 실제로 JSON 컨텐츠를 소트트웨어용 JavaScript 와 따라서 올바른 응용 프로그램 / javascript 약간만이라도 '유형'.
가장 좋은 것은 의심할 여지가 '응용 프로그램 / json' MIME JSON 응답을 유형입니다.
하지만 난 이미 일부 문제 때문에 일부 압축이란 '어디서' 응용 프로그램 / javascript x 경험하십시오 사용해야 했습니다. 2 와 [고 대디] 내 호스팅 환경 공유되므로 호스팅. 그들은 나에게 서버 구성을 변경할 수 없습니다. 난 이미 추가했어야 다음과 같은 코드를 압축하는 파일 '내' 웹스콘피그 과학계.
<httpCompression>
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
즉, 엑셀러레이터는 이아스파스 페이지를 사용하여 압축되었습니다 g zip 하지만 제가 json 응답을 하지 않았다 "고 덧붙였다.
<add mimeType="application/json" enabled="true"/>
정적 및 동적 있는 추상형데이터타입 단면에는. 그러나 압축 JSON 응답을 dell. all. 아닙니다.
그 후 이 새로 추가된 유형 및 추가되든지 제거했을
<add mimeType="application/x-javascript" enabled="true"/>
모두 정적 및 동적 유형은상위 단면에는 입력 및 변경일 응답
이사스 (비동기적입니다 처리기에서) 를
application/x-javascript
그리고 지금 나는 내 JSON 응답을 통해 압축됨 g zip 찾을 수 있었다. 그래서 개인적으로 사용할 추천합니까
application/x-javascript
a 공유됨 호스팅 환경 등에 대한 압축하려는 경우에만 너회의 JSON . 공유 호스팅, 변경할 수 없기 때문에 IIS 구성.
Json '를 사용하는 경우에만' 응용 프로그램 / MIME 유형 I have 다음 (2011년 11월 기준으로 가장 최신 버전의 구글 크롬, 파이어폭스, [2] 와 [파이어버그]).
[2]: http://en.wikipedia.org/wiki/Firebug_% 28software% 29
일하는 '유형' 응용 프로그램 / json 컨텐츠를 전부는 아니다.
Ext&, nbsp, JS 제출됩니다 사용하는 경우, 양식 파일을 업로드할 수 있다는 점에 유의하십시오 서버 응답이 브라우저에서 문서를 만들기 위해, ',' < iframe> 대해 분석합니다.
서버가 사용하는 경우, 해당 객체를 JSON 전송하십시오 반품하십시오 콘텐트 유형 '헤더입니다 위해 text / html 설정해야 합니다' '' 삽입하려면 변경되지 않은 것을 알 수 있는 텍스트 문서로 있지만브라우저에 바디입니다.
참조 [ext JS API 문서를 3.4.0] [2].
[2]: 0/docs/ http://dev.sencha.com/deploy/ext-3.4
JSON 은 특정 분야 언어 (DSL) 및 데이터 형식을 독립적으로 같은 유형, 자바스크립트, 자체 MIME '는 응용 프로그램 / json'. Mime 유형은 text / plain '존중' 할 수 있기 때문에 당연히 클라이언트입니다 제어됨을 전송할 수 있다, 그런데 바이트입니다 당신이 약간만이라도 것가운데 해석 '-' 응용 프로그램 / json 불필요하게 구입업체에서 응용 프로그램 도메인. 투석실에다가 통해 전송 XML text / plain '?'
하지만, 고객이 선택할 수 있는 MIME 유형은 장난하는거아니고 클라이언트뿐 데이터를 해석하는 방법에 대한 조언을 할 수 있다 '또는' - 'text / plain text / HTML' (it& 않을 때 # 39 의 HTML) 은 마치 유형에 따라 필요한 모든 유형의 가치가없는 it& 삭제 - # 39 에 따라 해당 객체를 객체의 입력되었는지 욕금지
아니 내가 아는 한, 자동으로 JSON 문서를 사용할 수 있도록 있지만브라우저에 런타임용으로 개발하십시오 가 앨리어스보다 런타임용으로 개발하십시오 비호환성의 개입하지 않고, JavaScript 객체 접근 가능한 신앙이니라 작업하고 위기에 클라이언트상의 that& # 39 에 완전히 다른 문제다. 그러나 that& # 39 에 그 이야기가 아니라 - [RESTful] [3] # 39 없는 경우가 있지만, JSON 서비스 don& JavaScript 런타임을 사용하는 data interchange format t 어서잡아 doesn& # 39, JSON 비호환성의 한다. 클라이언트는 위기에 있는 경우. 그럼 난 아마 HTML 템플릿 서비스를 통해 고려해보십시오) 혹은 [ui_policytable_java_spe_policy 아약스] [4] 를 사용할 수 있습니다.
Application/JSON!
[3]: http://en.wikipedia.org/wiki/Representational_state_transfer # RESTful_webservices [4]: http://en.wikipedia.org/wiki/Ajax% 28programming% 29
정답은:
Content-Type: application/json
앞에서 언급한 '있다' 는 많은 다른 응용 프로그램 / json 정답.
하지만 그 어떤 다른 옵션을 사용할 경우, 어떤 haven& # 39 아직 없다 "고 제안한 짓궂군요.
'응용 프로그램 / javascript x': Mime 유형은 '' 응용 프로그램 / 자바스크립트 표준 실험 전에 JavaScript 를 만들었다.
'text / 자바스크립트': 이제 더 이상 사용하지 않는. '때' 응용 프로그램 / javascript 콩지름에 javascript 를 사용하여.
'text / javascript x': 위의 MIME 형식 실험을 할 수 없다.
'text / json x': Mime 유형은 '실험' attaboy 공식적으로 등록된 애플리케이션 및 json JSON 전에.
결국 콘텐츠 유형이 있을 때마다 의문이 확인해야 합니다 이 링크
이 페이지에 디렉티브을 JSP 에서 사용할 수 있습니다.
<%@ page language="java" contentType="application/json; charset=UTF-8"
pageEncoding="UTF-8"%>
MIME 용지타입 JSON 은 '에 대한 올바른 응용 프로그램 / json'. JSP 이를 사용할 송신용입니다 대한 클라이언트입니다.
이 [IANA 등록 "에 대한 응용 프로그램 / json '] (http://www.iana.org/assignments/media-types/application/json 밝혔습니다 >. 이 사용하는 응용 프로그램 용지타입: JSON 위해 사용돼 온 이러한 모든 언어로 작성된 응용 프로그램 간 데이터 교환 프로그래밍 언어: ActionScript, C, C #, ColdFusion, 클로저 커먼 리스프, E, 얼랭 http://www. gnu., 자바, 자바스크립트, 루아, 객관적인 캄라, 펄, PHP, 파이썬, 루비, 스칼라, 레볼 및 구성표가.
브라우저 지원은 다른 일이 있다.
가장 널리 지원되는 비표준 미디어 유형은 text / 자바스크립트 / json '또는' 'text'. 그러나 일부 대형 벤더들이 사용할 수도 'text / plain'.
더욱 이상한 것은 컨텐츠 유형에 따라 '누가' text / xml, JSON 되돌려줍니다 보낸 헤더입니다 Flickr. '구글' text / 자바스크립트 api 를 사용하여 위해 일부 it& # 39 의 아약스.
예를 들면 다음과 같다:
curl -I "https://ajax.googleapis.com/ajax/services/search/video?v=1.0&q=jsonexample"
출력: '콘텐트 유형: text/javascript '
curl -I "https://www.flickr.com/services/rest/?method=flickr.test.echo&format=json&api_key=f82254c1491d894f1204d8408f645a93"
출력: '콘텐트 유형: text/xml '