猿问

什么是正确的JSON内容类型?

什么是正确的JSON内容类型?

我一直在忙着JSON一段时间,只是把它作为文本推出它并没有伤害任何人(我知道),但我想开始正确地做事。

我见过这样的JSON内容类型很多所谓的“标准”:

application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json

但哪一个是正确的,还是最好的?我认为它们之间存在安全性和浏览器支持问题。

我知道有一个类似的问题,如果REST API返回JSON那么MIME类型是什么?,但我想要一个稍微有针对性的答案。


婷婷同学_
浏览 1091回答 4
4回答

陪伴而非守候

对于JSON文本:application/jsonJSON文本的MIME媒体类型是application/json。默认编码为UTF-8。(来源:RFC 4627)。对于带回调的JSONP(可运行的javascript):application/javascript以下是相关评论中提到的一些博客文章。为什么不应该使用text/htmlJSONInternet Explorer有时会遇到问题 application/json一个相当完整的Mimetypes列表以及它们的用途IANA的官方mime类型列表来自@ gnrfan的答案如下

米琪卡哇伊

IANA已将JSON的官方MIME类型注册为application/json。当被问及为什么不text/json,克罗克福德似乎说JSON是不是真正的JavaScript也不是文字,也IANA更有可能来伸手application/*比text/*。更多资源:媒体类型征求意见4627bluesmoon:JSON有一个类型

呼啦一阵风

对于JSON:Content-Type: application/json对于JSON-P:Content-Type: application/javascript

绝地无双

当然,JSON的正确MIME媒体类型是application/json,但有必要实现应用程序中预期的数据类型。例如,我使用Ext GWT,服务器响应必须为text / 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);     }};
随时随地看视频慕课网APP
我要回答