有许多“标准”为“标准”Json Json (Json Json) (Json Json Json) (Json Json) Json Json (Json Json) Json (Json) Json (Json) Json (Json) Json (Json) Json (Json) Json (Json) Json(Json) Json (Json) Json (Json) Json(Json) Json (Json) Json内容类型 :

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

我用哪一种,在哪里?我假设安全和浏览器支持问题是一个因素。

相关:如果JSON被AST API送回来 是什么MIME类型?


当前回答

扩大被接受的答复, 当你使用JSON 在REST背景下...

有一个强力论据关于使用application/x-resource+jsonapplication/x-collection+json当时,你们是代表最高科技委员会的资源和收藏的。

如果你决定遵循jsonapi 计数器具体说明,您应该使用技术的application/vnd.api+json正如文件所记载的那样。

虽然不存在普遍标准,但显然,在所转让资源中增加的语义显然证明有必要更明确地说明内容类型不只是application/json.

根据这一推理,其他情况可以证明有理由更具体地说明内容类型.

其他回答

这取决于观点。

如果您是寄件请求的客户端,application/json是正确的选择。

但如果您是收到请求的服务器, 您必须做好准备, 客户端也可以发送编码 。 因此, 请准备 。application/jsonapplication/json; charset=utf-8有效。

两种情况下媒体类型相同。 但内容类型不同 。

当然,对JSON来说正确的MIME媒体类型是application/json,但有必要了解在您的应用程序中预期会收到何种类型的数据。

例如,我使用Ext GWT 离 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");
    }
});

使用申请/日文响应类型,浏览器建议我保存文件。

服务器侧端源代码片断使用春春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);
    }
};

正确的 MIME 类型是application/json

但是

我经历过许多浏览器类型或框架用户需要的场景:

text/html

application/javascript

缩略IANA 登记注册application/json说:

使用这种媒体类型的应用:JSON一直被用来在以所有这些编程语言书写的申请之间交换数据:ActionScript、C、C#、Clojure、ColdFusion、Common Lisp、E、E、Eerlan、Go、Java、JavaScript、Lua、CAML目标、Perl、PHP、Python、Rebol、Ruby、Scala和Schep。

您会注意到 IANA. org 。也没有列出其他媒体类型,事实上,甚至application/javascript现在已经过时。application/json是唯一唯一可能的正确回答。

浏览器支持是另一回事。

得到最广泛支持的非标准媒体类型是:text/jsontext/javascript但有些大名甚至使用text/plain.

更奇怪的是Flickr发来的内容-类头头,text/xml谷歌的使用text/javascript对于其中的一些 它的ajax apis。

实例:

curl -I "https://ajax.googleapis.com/ajax/services/search/video?v=1.0&q=jsonexample"

产出:Content-Type: text/javascript

curl -I "https://www.flickr.com/services/rest/?method=flickr.test.echo&format=json&api_key=f82254c1491d894f1204d8408f645a93"

产出:Content-Type: text/xml

春春您有一个定义型号 :MediaType.APPLICATION_JSON_VALUE等于申请/日文.