有许多“标准”为“标准”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类型?


当前回答

JSON 文本:

application/json

JSON 文本的 MIME 媒体类型是application/json。默认编码为 UTF-8。(资料来源:RFC 4627)

用于贾索普(可调回 JavaScript) 调回 :

application/javascript

以下是相关评论中提到的一些博客文章:

其他回答

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

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

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

见见Ext JS 3.4.0 API文件.

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

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

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

当然,对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
  • 内容类型:应用程序/xml
  • 内容-类型:文本/ html

缩略内容类型标题应该设置为 '申请/日文收听请求的服务器应包含 "接受=申请/json"在春季MVC中,你可以这样做:

@RequestMapping(value="location", method = RequestMethod.POST, headers = "Accept=application/json")

回复中的添加页眉 :

HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");