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

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

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

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


当前回答

给杰森:

Content-Type: application/json

JSON -P: 给JSON -P:

Content-Type: application/javascript

其他回答

JSON是一种特定域名语言(DSL)和独立于 JavaScript 的数据格式, 并因此拥有自己的 MIME 类型、 应用程序/ json 。 当然, 尊重 MIME 类型是客户驱动的, 所以文本/ plain 也可以用于字节的传输, 但随后您会不必要地将解释推到供应商应用程序域 - 应用程序/ json 。 您会通过文本/ plain 传输 XML吗 ?

但坦率地说,你选择MIME类型是建议客户如何解释数据-文本/平方或文本/HTML(当它不是 HTML ) 。 它和用打印语言制作您类型对象一样,没有信息规范。

我知道没有浏览器运行时间会拿JSON文件, 并且自动在运行时作为 JavaScript 无障碍对象, 不受干扰地提供, 但如果你和一个残废的客户合作, 那是一个完全不同的问题。 但是,这不是整个故事- Restful JSON 服务通常没有 JSON 运行时间, 但是它不会阻止他们使用 JSON 作为可行的数据交换格式。 如果客户是残废的... 那么我会考虑也许通过 Ajax Tylating 服务输入 HTML 。

申请/JSON!

并非所有内容类型应用程序/json都有效。

如果您正在使用 Ext JS 表格提交到上传文件, 请注意, 服务器响应由浏览器解析, 以创建 < iframe > 的文档 。

如果服务器正在使用 JSON 发送返回对象, 则内容- 类型页眉必须设置为文本/ html , 以便告诉浏览器将文本插入文档正文, 未改变 。

见Ext JS 3.4.0 API文件。

我用下面的用法

contentType: 'application/json',
data: JSON.stringify(SendData),

如果您使用 Ubuntu 或 Debian , 并通过 Apache 服务于 .json 文件, 您可能需要以正确的内容类型服务文件 。 我这样做主要是因为我想使用 Firefox 扩展 JSONView

Apache 模块 mod_ mime 将有助于轻松做到这一点。 但是, 您需要编辑文件/ etc/ mime. type 并添加行

application/json json

然后重新启动 Apache :

sudo service apache2 restart

给杰森:

Content-Type: application/json

JSON -P: 给JSON -P:

Content-Type: application/javascript