JSON 内容类型有许多“标准 ” :

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

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

相关:如果JSON被REST API送回,什么MIME类型?


当前回答

为具体说明有趣的JSON结果,请在请求页眉中加入“申请/json”,如下文所示:

“接受:申请/json”是一种理想的反应格式。

“ Content-Type: application/json” 指定了您请求的内容格式, 但有时您同时指定了应用程序/ json 和 application/ xml , 但这些格式的质量可能不同 。 哪个服务器会发送不同的响应格式, 请看下面的例子 :

Accept:application/json;q=0.4,application/xml;q=8

这将返回 XML, 因为 XML 质量更高 。

其他回答

如果您在客户端拨打 ASP. NET 网络服务, 您必须使用应用程序/ json 才能工作 。 我相信这对 jQuery 和 Ext 框架是一样的 。

当然,对 JSON 来说正确的 MIME 媒体类型是应用程序/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");
    }
});

如果使用应用程序/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 (JavaScript Objects Notation) 和 JSONP (“JSON with padding”) 格式似乎非常相似,因此,它们应该使用哪种MIME类型可能非常混乱。 尽管格式相似,但两者之间有一些微妙的差别。

因此,每当有任何疑问时,我有一个非常简单的方法(在多数情况下完全正常),即去检查相应的RFC文件。

JSON RFC 4627 (JSPAScript 支出用途说明(JSON)的应用/json媒体类型)是JSON格式的规格。

application/json.

JSONP JSONP JSONP (“JSON with padding” ) 在浏览器中处理的方式不同于JSON。 JSONP 被作为普通的 JavaScript 脚本处理, 因此它应该使用JSONP JSONP JSONP (“ JSON with padding ” ) 的当前正式的 MIME 类型, JSONP (“JSON with padding ” ) 。 但是, 在许多情况下, 文本/ javacript MIME 类型也会正常工作 。

请注意 RFC 4329 (Scripting Media Type) 文档将文本/javascript标为已过时,建议改用应用程序/javascript类型,但是,由于遗留原因,文本/javascript仍然被广泛使用,并有交叉浏览支持(这并不总是应用/javascript MIME类型的情况,特别是旧浏览器)。

JSON 文本:

application/json

JSON 文本的 MIME 媒体类型是应用程序/ json。 默认编码是 UTF-8 。 (资料来源: RFC 4627)

JSONP (可运行的 JavaScript) 使用回调 :

application/javascript

以下是相关评论中提到的一些博客文章:

JSON Internet Explorer 为何不使用文本/ html 用于 JSON 的 JSON Internet Explorer 有时与应用程序/ json 有问题,

NANA将JSON的正式MIME类型登记为申请/json。

当被问及为什么不是文本/json时,Crockford似乎说JSON其实不是JSON的JavaScript,也不是文本,而且IANA比文本/*更可能发出申请/*。

更多资源:

媒体类型 要求征求第4627条评论:JSON有一个类型