正确的JSON内容类型是什么?
我已经胡闹了一段时间,只是把它作为文本推出来,它没有伤害任何人(据我所知),但我想开始把事情做好 我已经看到了很多关于JSON内容类型的所谓“标准”:正确的JSON内容类型是什么?,json,http-headers,content-type,Json,Http Headers,Content Type,我已经胡闹了一段时间,只是把它作为文本推出来,它没有伤害任何人(据我所知),但我想开始把事情做好 我已经看到了很多关于JSON内容类型的所谓“标准”: application/json application/x-javascript text/javascript text/x-javascript text/x-json 但哪一个是正确的,还是最好的?我推测,它们之间存在着不同的安全性和浏览器支持问题 我知道有一个类似的问题,但我想要一个更具针对性的答案。对于JSON文本: applica
application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json
但哪一个是正确的,还是最好的?我推测,它们之间存在着不同的安全性和浏览器支持问题
我知道有一个类似的问题,但我想要一个更具针对性的答案。对于JSON文本:
application/json
JSON文本的MIME媒体类型为application/JSON
。默认编码是UTF-8。(来源:)
对于具有回调的(可运行JavaScript):
application/javascript
以下是相关评论中提到的一些博客帖子:
- 根据@gnrfan下面的回答
application/json
才能使其工作。我相信这对于软件和框架也是一样的 当然,JSON的正确MIME媒体类型是application/JSON
,但需要了解应用程序中预期的数据类型
例如,我使用,服务器响应必须为text/html,但包含JSON数据
客户端,Ext GWT表单侦听器
如果使用应用程序/json响应类型,浏览器建议我保存文件
使用的服务器端源代码片段
已将JSON的官方MIME类型注册为application/JSON
当被问及为什么不使用text/json
时,Crockford似乎说json既不是JavaScript也不是文本,而且IANA比text/*
更可能分发application/*
更多资源:
application/json json
然后重新启动Apache:
sudo service apache2 restart
并非所有内容都适用于内容类型
application/json
如果使用form submit上载文件,请注意浏览器会解析服务器响应,以便为
创建文档
如果服务器使用JSON发送返回对象,则必须将内容类型
标题设置为text/html
,以便通知浏览器将未更改的文本插入到文档正文中
请参阅。仅当使用
应用程序/json
作为类型时,我有以下内容(截至2011年11月,最新版本的Chrome,Firefox有):
- 从服务器加载JSON时,Chrome不再发出警告
- Firebug将在响应中添加一个选项卡,显示JSON数据 格式化。如果MIME类型不同,它将显示为 “响应内容”
- 正确的JSON内容类型是
application/JSON
,除非您使用的是带填充的JSON,它实际上是JavaScript,因此正确的内容类型应该是application/JavaScript毫无疑问,application/JSON
是JSON响应的最佳类型
但是我有一些经验,因为一些压缩问题,我不得不使用application/x-javascript
。我的托管环境与共享托管。他们不允许我更改服务器配置。我已将以下代码添加到我的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"/>
现在我发现我的JSON响应是用g-zip压缩的。所以我个人推荐使用
application/x-javascript
仅当您希望在共享托管环境上压缩JSON响应时。因为在共享主机中,它们不允许您更改配置。如果您在客户端环境中,对于支持良好的web应用程序,必须调查跨浏览器支持
正确的HTTP内容类型应该是application/json
,其他人也强调了这一点,但有些客户端处理得不太好,这就是为什么jQuery推荐默认的text/html
json是一种(DSL)和独立于JavaScript的数据格式,因此它有自己的类型,application/json
。当然,对MIME类型的尊重是由客户端驱动的,因此text/plain
可以用于字节的传输,但这样做会不必要地将解释推到供应商应用程序域上-application/json
。您会通过text/plain
传输XML吗
但老实说,您选择的MIME类型是向客户提供的关于如何解释数据的建议——text/plain
或text/HTML
(当它不是HTML时)就像类型擦除一样——它的无信息性就如同将所有类型的对象都用类型化语言表示一样
据我所知,任何浏览器运行时都不会接受JSON文档,并自动将其作为JavaScript可访问对象提供给运行时,而无需干预。但是,如果您使用的是残废的客户机,那就完全不同了。但这并不是全部——JSON服务通常没有JavaScript运行时,但这并不能阻止它们使用JSON作为可行的数据交换格式。如果客户是如此残废。。。然后我会考虑通过模板服务来进行HTML注入。
Application/JSON 对于JSON:
{ "Name": "Foo", "Id": 1234, "Rank": 7 }
functionCall({"Name": "Foo", "Id": 1234, "Rank": 7});
内容类型:应用程序/json
用于:
{ "Name": "Foo", "Id": 1234, "Rank": 7 }
functionCall({"Name": "Foo", "Id": 1234, "Rank": 7});
内容类型:应用程序/javascript
正确答案是:
Content-Type: application/json
在中,您可以在页面指令中使用此命令:
<%@ page language="java" contentType="application/json; charset=UTF-8"
pageEncoding="UTF-8"%>
JS的正确媒体类型
<%@ page language="java" contentType="application/json; charset=UTF-8"
pageEncoding="UTF-8"%>
def ajaxFindSystems = {
def result = Systems.list()
render(contentType:'application/json') {
results {
result.each{sys->
system(id:sys.id, name:sys.name)
}
}
resultset (rows:result.size())
}
}
{ "Name": "Foo", "Id": 1234, "Rank": 7 }
functionCall({"Name": "Foo", "Id": 1234, "Rank": 7});
text/html
application/javascript
contentType: 'application/json',
data: JSON.stringify(SendData),
@RequestMapping(value="location", method = RequestMethod.POST, headers = "Accept=application/json")
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
curl -I "https://ajax.googleapis.com/ajax/services/search/video?v=1.0&q=jsonexample"
curl -I "https://www.flickr.com/services/rest/?method=flickr.test.echo&format=json&api_key=f82254c1491d894f1204d8408f645a93"
<?php
header("Content-type: application/json");
// Do something here...
?>
Content-Type: application/json
$context = stream_context_create([
'gs' => [
'acl'=>'public-read',
'Content-Type' => 'application/json',
]
]);
file_put_contents(
"gs://BUCKETNAME/FILENAME.json",
json_encode((object) $array),
false,
$context
);
$data = json_decode(file_get_contents("gs://BUCKETNAME/FILENAME.json"));
application/json.
For JSON data: Content-Type:application/json
For HTML data: Content-Type:text/html,
For XHTML data: Content-Type:application/xhtml+xml,
For XML data: Content-Type:text/xml, application/xml