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

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

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

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


当前回答

PHP 开发商使用此功能 :

<?php
    header("Content-type: application/json");

    // Do something here...
?>

其他回答

为了补充先前的答复,根据W3C,JSON链接数据(JSON-LD)的MIME类型是:

应用程序/ld+json 类型名称: 应用程序 子类型名称: ld+json

此外,来自同一来源的:

文件扩展名:.jsonld

JSON的正确内容类型是应用程序/json UnLESS, 您正在使用JSONP, 也称为JSON with Padding, 实际上是 JavaScript, 所以正确的内容类型将是应用程序/javascript。

如果您从 JSON 的 REST API 获得数据, 您必须使用内容类型 :

JSON 数据的 JSON 数据: 内容-类型: HTML 数据的应用/json: 内容-类型: Text/html, XHTML 数据: 内容- Type: 应用程序/xhtml+xml, XML 数据: 内容- Type: Text/xml, 应用程序/xml

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是JSON答复的最佳MIME类型。

但我有一些经验,因为某些压缩问题,我不得不使用应用程序/ X- javascript。我的主机环境与 GoDdddy 共享。 它们不允许我更改服务器配置。 我在我的 Web. config 文件中添加了以下代码, 用于压缩响应 。

<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"/>

通过使用这个, . aspx 页面被压缩为 g- zip, 但 JSON 没有回应 。 我添加了 。

<add mimeType="application/json" enabled="true"/>

但这并不压缩JSON的反应。

在那之后,我删除了这个新添加的类型,并添加了

<add mimeType="application/x-javascript" enabled="true"/>

在静态和动态两种类型的章节中都采用静态和动态两种类型,并更改了

.ashx (非同步处理器) to

application/x-javascript

现在我发现我的JSON反应 压缩了G-zip。所以我个人建议使用

application/x-javascript

只有在您想要压缩您的 JSON 对共享主机环境的反应时。 因为共享主机不允许您更改 IIS 配置 。