什么是正确的JSON内容类型?

关于JSON的正确内容类型,有多种说法。应用/json是JSON的标准MIME类型,但考虑到兼容性和压缩问题,有人建议使用text/javascript。JSON-P通常用于跨域请求,其内容类型为application/x-javascript或text/javascript。在某些情况下,如与Ext GWT配合使用时,服务器响应可能需要设置为text/html。浏览器和框架有时需要特定类型,如application/json-p。综合来看,选择正确的JSON内容类型取决于应用场景和目标兼容性。
摘要由CSDN通过智能技术生成

我一直在弄乱JSON一段时间,只是将其作为文本推出,并没有伤害任何人(据我所知),但是我想正确地做事。

我见过这么多的所谓的“标准”为JSON内容类型:

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

但是哪一个是正确的,还是最好的? 我发现在它们之间存在安全性和浏览器支持问题。

我知道有一个类似的问题, 如果REST API返回JSON,则为哪种MIME类型? ,但我想要一个更有针对性的答案。


#1楼

JSON的正确内容类型是application/json除非您使用JSONP ,也称为JSON与Padding,它实际上是JavaScript,因此正确的内容类型将是application/javascript


#2楼

毫无疑问, application/json是JSON响应的最佳MIME类型。

但是由于一些压缩问题,我有一些必须使用application/x-javascript经验。 我的托管环境是与GoDaddy共享的托管。 它们不允许我更改服务器配置。 我已将以下代码添加到我的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(异步处理程序)

application/x-javascript

现在,我发现我的JSON响应已使用g-zip压缩。 所以我个人建议使用

application/x-javascript

仅当您要在共享托管环境上压缩JSON响应时。 因为在共享主机中,它们不允许您更改IIS配置。


#3楼

如果您在客户端环境中,则对于良好支持的Web应用程序,必须调查跨浏览器的支持。

正确的HTTP Content-Type将是application/json ,因为其他application/json也已经突出显示,但是某些客户端不能很好地处理它,因此jQuery建议使用默认的text/html


#4楼

JSON是一种域特定语言 (DSL)和一种独立于JavaScript的数据格式,因此具有其自己的MIME类型application/json 。 对MIME类型的尊重当然是由客户端驱动的,因此text/plain可能会用于字节传输,但随后您将不必要地将解释推向供应商应用程序域-application application/json 。 您会通过text

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值