为了账号安全,请及时绑定邮箱和手机立即绑定

什么是正确的JSON内容类型?

什么是正确的JSON内容类型?

婷婷同学_ 2019-05-25 15:44:05
什么是正确的JSON内容类型?我一直在忙着JSON一段时间,只是把它作为文本推出它并没有伤害任何人(我知道),但我想开始正确地做事。我见过这样的JSON内容类型很多所谓的“标准”:application/json application/x-javascript text/javascript text/x-javascript text/x-json但哪一个是正确的,还是最好的?我认为它们之间存在安全性和浏览器支持问题。我知道有一个类似的问题,如果REST API返回JSON,那么MIME类型是什么?,但我想要一个稍微有针对性的答案。
查看完整描述

4 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

对于JSON文本:

application/json

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

对于带回调的JSONP(可运行的javascript):

application/javascript

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


查看完整回答
反对 回复 2019-05-25
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

IANA已将JSON的官方MIME类型注册为application/json

当被问及为什么不text/json,克罗克福德似乎说JSON是不是真正的JavaScript也不是文字,也IANA更有可能来伸手application/*text/*

更多资源:


查看完整回答
反对 回复 2019-05-25
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

对于JSON:

Content-Type: application/json

对于JSON-P

Content-Type: application/javascript


查看完整回答
反对 回复 2019-05-25
?
绝地无双

TA贡献1946条经验 获得超4个赞

当然,JSON的正确MIME媒体类型是application/json,但有必要实现应用程序中预期的数据类型。

例如,我使用Ext GWT,服务器响应必须为text / 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");
    }});

如果使用application / json响应类型,浏览器建议我保存文件。

使用Spring 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);
    }};


查看完整回答
反对 回复 2019-05-25
  • 4 回答
  • 0 关注
  • 1089 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信