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类型?
当前回答
内容- 类型页眉在张贴时应该设置为“ 应用程序/ json ” 。 监听请求的服务器应该包括“ 接受= 应用程序/ json ” 。 在 Spring MVC 中, 您可以这样做 :
@RequestMapping(value="location", method = RequestMethod.POST, headers = "Accept=application/json")
回复中的添加页眉 :
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
其他回答
在 JSP 中,您可以在页面指令中使用此指令 :
<%@ page language="java" contentType="application/json; charset=UTF-8"
pageEncoding="UTF-8"%>
JSON的正确MIME媒体类型是申请/json, JSP将用来向客户发送回复。
IANA 申请登记/json说
使用这种媒体类型的应用:JSON一直被用来在以所有这些编程语言书写的申请之间交换数据:ActionScript、C、C#、Clojure、ColdFusion、Common Lisp、E、E、Eerlan、Go、Java、JavaScript、Lua、CAML目标、Perl、PHP、Python、Rebol、Ruby、Scala和Schep。
您会注意到 IANA. org 没有列出任何其他类型的媒体, 事实上, 应用程序/ javascript 现在已经过时了 。 因此应用程序/ json 是唯一可能的正确答案 。
浏览器支持是另一回事。
最得到广泛支持的非标准媒体类型是文本/json或文本/javascript。 但有些大名甚至使用文本/平方。
更奇怪的是Flickr发来的“内容-类”头条, 他将JSON回回为文本/xml。 Google使用文本/插件来描述其中的ajax apis。
实例:
curl -I "https://ajax.googleapis.com/ajax/services/search/video?v=1.0&q=jsonexample"
产出:内容-类型:文本/插图
curl -I "https://www.flickr.com/services/rest/?method=flickr.test.echo&format=json&api_key=f82254c1491d894f1204d8408f645a93"
产出:内容类型:文本/xml
如果您从 JSON 的 REST API 获得数据, 您必须使用内容类型 :
JSON 数据的 JSON 数据: 内容-类型: HTML 数据的应用/json: 内容-类型: Text/html, XHTML 数据: 内容- Type: 应用程序/xhtml+xml, XML 数据: 内容- Type: Text/xml, 应用程序/xml
只有在使用应用/json作为MIME类型时(截至2011年11月,有最新版本的Chrome、Firefox和Firebug),我才具备以下条件:
当 JSON 从服务器上装入时, Chrome 不再发出警告 。 Firebug 会在回复中添加一个标签, 显示您格式化的 JSON 数据。 如果 MIME 类型不同, 它会显示为“ 响应内容 ” 。
“申请/json”是JSON正确的内容类型。
def ajaxFindSystems = {
def result = Systems.list()
render(contentType:'application/json') {
results {
result.each{sys->
system(id:sys.id, name:sys.name)
}
}
resultset (rows:result.size())
}
}