JSON 内容类型有许多“标准 ” :
application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json
我用哪一种,在哪里?我假设安全和浏览器支持问题是一个因素。
相关:如果JSON被REST API送回,什么MIME类型?
JSON 内容类型有许多“标准 ” :
application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json
我用哪一种,在哪里?我假设安全和浏览器支持问题是一个因素。
相关:如果JSON被REST API送回,什么MIME类型?
当前回答
你的问题的一部分 跟我有关 当我刚刚看到它。
第三方供应商正在提供一种供多个客户使用的REST服务。 它是一个直向前方的REST, 配有查询参数, 返回一个完善的JSON。 我用 PHP 和 Java 测试了它的工作原理。
我的客户端使用 Oracle Service Bus 作为他的应用程序服务器和 Internet 之间的网关。 当我使用 Oracle Service Bus 作为 OSB 服务时, 它被无效的信息格式错误崩溃。 结果发现, 返回的内容类型是文本/ html 。 OSB 将回复按此信头处理; 将文本、 XML 和 JSON 转换为文本、 XML 和 JSON 。 在此情况下, 回复是 JSonson , 但信头没有这么说 。 联系提供方时, 我收到回复 : “ 我们不会改变它, 因为不会影响其他人 ” 。
内容- 类型页眉指定内容应该是什么, 而不是实际内容。 也就是说, 在您的消费程序中, 您可以检查或忽略它, 并以任何方式处理内容 。 另一个示例是, 您可以返回 GIF 数据, 但指定内容类型为 JSON, 然后继续忽略页眉, 读取图像数据 。 这不会伤害您的程序, 但可能会伤害其他人 。
故事的道德感:好好表现。
其他回答
只有在使用应用/json作为MIME类型时(截至2011年11月,有最新版本的Chrome、Firefox和Firebug),我才具备以下条件:
当 JSON 从服务器上装入时, Chrome 不再发出警告 。 Firebug 会在回复中添加一个标签, 显示您格式化的 JSON 数据。 如果 MIME 类型不同, 它会显示为“ 响应内容 ” 。
并非所有内容类型应用程序/json都有效。
如果您正在使用 Ext JS 表格提交到上传文件, 请注意, 服务器响应由浏览器解析, 以创建 < iframe > 的文档 。
如果服务器正在使用 JSON 发送返回对象, 则内容- 类型页眉必须设置为文本/ html , 以便告诉浏览器将文本插入文档正文, 未改变 。
见Ext JS 3.4.0 API文件。
毫无疑问,申请/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 配置 。
最常见的 MIME 类型是 应用程序/ json 。 以下是 JSON 全部内容类型列表 :
内容-类型:申请/json-Json-Json-内容-类型:在申请/json正式登记之前文本/x-json-Json-正式登记。内容-类型:申请/javascript-Json-P 内容-类型:申请/x-javascript-JavaScript
过时类型 :
内容- 类型: 文本/ javascript - JavaScript 但已经过时。 用于 HTML 属性的旧的互联网探索器版本。 内容- Type: 文本/ x- javascript - JavaScript 媒体类型, 但已经过时
我用下面的用法
contentType: 'application/json',
data: JSON.stringify(SendData),