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媒体类型)。

其他回答

如果您在客户端拨打 ASP. NET 网络服务, 您必须使用应用程序/ json 才能工作 。 我相信这对 jQuery 和 Ext 框架是一样的 。

NANA将JSON的正式MIME类型登记为申请/json。

当被问及为什么不是文本/json时,Crockford似乎说JSON其实不是JSON的JavaScript,也不是文本,而且IANA比文本/*更可能发出申请/*。

更多资源:

媒体类型 要求征求第4627条评论:JSON有一个类型

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

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

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

见Ext JS 3.4.0 API文件。

如果JSON用垫子,那将是申请/jsonp。如果JSON没有划线,那将是申请/json。

要同时处理这两种问题,使用“应用/刺杀”是一种良好做法,无需担心是用垫子还是不用垫子。

我用下面的用法

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