有许多“标准”为“标准”Json Json (Json Json) (Json Json Json) (Json Json) Json Json (Json Json) Json (Json) Json (Json) Json (Json) Json (Json) Json (Json) Json (Json) Json(Json) Json (Json) Json (Json) Json(Json) Json (Json) Json内容类型 :

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

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

相关:如果JSON被AST API送回来 是什么MIME类型?


当前回答

并非所有内容都适合内容类型application/json.

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

如果服务器正在使用 JSson 发送返回对象, 那么Content-Type必须设置为text/html以便告诉浏览器将未改变的文字插入文档正文。

见见Ext JS 3.4.0 API文件.

其他回答

这取决于观点。

如果您是寄件请求的客户端,application/json是正确的选择。

但如果您是收到请求的服务器, 您必须做好准备, 客户端也可以发送编码 。 因此, 请准备 。application/jsonapplication/json; charset=utf-8有效。

两种情况下媒体类型相同。 但内容类型不同 。

JSON是一个域内特定语言(DSL)和独立于 JavaScript 的数据格式,因此具有自己的米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米米类型,application/json尊重MIME类型当然是由客户驱动的,所以text/plain可能是为了传输字节, 但你会不必要地把解释 推到供应商申请域application/json。您是否会通过text/plain?

但说实话,你选择MIME类型 是建议客户 如何解读数据text/plaintext/HTML(当它不是 HTML ) 就像类型擦除—— 它和用打印语言制作所有类型对象一样没有信息规范。

我知道没有浏览器运行时间会使用 JSON 文档, 并自动在运行时作为 JavaScript 无障碍对象自动提供, 无需干预, 但如果你和一个残废的客户合作, 那完全是另一回事。 但这不是整个故事-休息时间JSON服务通常没有 JavaScript 运行时, 但是它并不阻止他们使用JSON作为可行的数据交换格式。 如果客户是那么残废的话... 那么我想也许通过 HTML 注射阿贾克斯代替为诱惑服务。

申请/JSON!

当然,对JSON来说正确的MIME媒体类型是application/json,但有必要了解在您的应用程序中预期会收到何种类型的数据。

例如,我使用Ext GWT 离 GWT服务器响应必须以文本/ html但包含JSON的数据。

客户端, Ext GWT 窗体收听器

uploadForm.getForm().addListener(new FormListenerAdapter()
{
    @Override
    public void onActionFailed(Form form, int httpStatus, String responseText) 
    {
        MessageBox.alert("Error");
    }

    @Override
    public void onActionComplete(Form form, int httpStatus, String responseText) 
    {
        MessageBox.alert("Success");
    }
});

使用申请/日文响应类型,浏览器建议我保存文件。

服务器侧端源代码片断使用春春MVC

return new AbstractUrlBasedView() 
{
    @SuppressWarnings("unchecked")
    @Override
    protected void renderMergedOutputModel(Map model, HttpServletRequest request,
                                           HttpServletResponse response) throws Exception 
    {
        response.setContentType("text/html");
        response.getWriter().write(json);
    }
};

如果JSON是用垫子垫着的,那它就是application/jsonp如果JSson没有踏板,那它就会是application/json.

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

目前的适当标准是application/json。默认编码是 UTF-8,但值得一提的是,它也可以是 UTF-16 或 UTF-32. 当 JSON 以 UTF-16 或 UTF-32 书写时,必须使用二进制内容转移编码。

有关JSON在RFC 4627: JavaScript 对象标记(JSON)的应用/json媒体类型

有关二进制传输编码的更多信息正在打开5. 内容转让-编码信头字段(RRC 1341)。