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类型?
当前回答
作为一些研究,
最常见的MIME类型是
申请/日文
让我们举个例子来区分杰森和爪哇史克里普特
申请/日文
当不知道该数据将如何使用时,即使用该数据。当信息仅以 JSON 格式从服务器中提取时,它可以通过链接或任何文件(如果是的话)来使用。
比如说...
<?php
header('Content-type:application/json');
$directory = [
['Id' => 1, 'Name' => 'this'],
['Id' => 2, 'Name' => 'is'],
['Id' => 3, 'Name' => 'Stack Overflow'],
];
// Showing the JSON data
echo json_encode($directory);
?>
产出是,
[{"Id":1, "Name":"this"}, {"Id":2, "Name":"is"}, {"Id":3, "Name":"Stack Overflow"}]
申请/标注
在预先界定数据使用时使用,在客户端 Ajax 应用程序调用时使用,在JSON-P型或JSONP型数据时使用。
例如,例如
<?php
header('Content-type:application/javascript');
$dir = [
['Id' => 1, 'Name' => 'this' ],
['Id' => 2, 'Name' => 'is'],
['Id' => 3, 'Name' => 'Stack Overflow'],
];
echo "Function_call(" . json_encode($dir) . ");";
?>
产出是,
Function_call([{"Id":1, "Name":"this"}, {"Id":2, "Name":"is"}, {"Id":3, "Name":"Stack Overflow"}])
对于其他MIME类型,请参看MIME类型的完整细节(IANA媒体类型)。
其他回答
毫无疑问,申请/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 配置 。
在 JSP 中,您可以在页面指令中使用此指令 :
<%@ page language="java" contentType="application/json; charset=UTF-8"
pageEncoding="UTF-8"%>
JSON的正确MIME媒体类型是申请/json, JSP将用来向客户发送回复。
正如其他许多人提到的那样,申请/json是正确答案。
但还没有被解释的是你提出的其他选择 意指什么
申请/申请前的实验 MIME 类型 : 申请/申请前的实验 MIME 类型 : 文本/ 标本 : 现在过时 。 您在使用 javascript 时应该使用 应用程序/ 标本 : 上述情况下的实验 MIME 类型 。 文本/ x- json : 申请/ json 正式注册前 JSON 的实验 MIME 类型 。
总的来说,只要您对内容类型有任何疑问,您就应该检查此链接
如果您使用 Ubuntu 或 Debian , 并通过 Apache 服务于 .json 文件, 您可能需要以正确的内容类型服务文件 。 我这样做主要是因为我想使用 Firefox 扩展 JSONView
Apache 模块 mod_ mime 将有助于轻松做到这一点。 但是, 您需要编辑文件/ etc/ mime. type 并添加行
application/json json
然后重新启动 Apache :
sudo service apache2 restart
我用下面的用法
contentType: 'application/json',
data: JSON.stringify(SendData),