日期:2014-05-16  浏览次数:20836 次

Ajax应用常见的HTTP ContentType设置

Ajax应用常见的HTTP ContentType设置

?

ajax开发中, 常遇到下面的几种情况:

?

1 服务端需要返回一段普通文本给客户端?

2 服务端需要返回一段HTML代码给客户端?

3 服务端需要返回一段XML代码给客户端?

4 服务端需要返回一段javascript代码给客户端?

5 服务端需要返回一段json串给客户端

?

?

?

对于每一种返回类型,规范的做法是要在服务端指定 response的contentType。

(当然 不指定绝大多数情况下也没什么问题 尤其是返回"非xml"的时候)

?

代码?

? ? 普通文本 : text/plain

? ? HTML代码 : text/html

? ? XML代码 : text/xml

以上三个可以说是毫无争议的, 但是另外两种情况 就要注意一下了.?

javascript 的 contentType 按最标准的写法 应该是 application/javascript.?

而常用的 text/javascript 已经被 rfc定义为废弃的.?

但是,在这里暂时不建议使用 application/javascript

因为很多老旧浏览器并不支持 application/javascript?

而所有浏览器都支持 text/javascript.?

在标准和广泛的兼容性之间 还是暂且选择后者吧.

?

?

json 的 contentType 常见写法有: text/json & text/javascript .?

但是 这个 text/json 其实是根本不存在的, 而 text/javascript 在有些时候客户端处理起来会有歧义.?

对于json的contentType , rfc里定义的标准写法是 :application/json.

?

在这里毫无疑问 我们应该选择标准写法的 application/json

?

?

最后,附一下ContentType清单:

?

常用的:

?

[java] view plaincopy

text/plain ??

text/HTML ?

text/xml ?

test/javascript ?

application/json ?

image/GIF ?

image/JPEG ?

?

清单:

?

[java] view plaincopy

".*"="application/octet-stream" ??

".001"="application/x-001" ??

".301"="application/x-301" ??

".323"="text/h323" ??

".906"="application/x-906" ??

".907"="drawing/907" ??

".a11"="application/x-a11" ??

".acp"="audio/x-mei-aac" ??

".ai"="application/postscript" ??

".aif"="audio/aiff" ??

".aifc"="audio/aiff" ??

".aiff"="audio/aiff" ??

".anv"="application/x-anv" ??

".asa"="text/asa" ??

".asf"="video/x-ms-asf" ??

".asp"="text/asp" ??

".asx"="video/x-ms-asf" ??

".au"="audio/basic" ??

".avi"="video/avi" ??

".awf"="application/vnd.adobe.workflow" ??

".biz"="text/xml" ??

".bmp"="application/x-bmp" ??

".bot"="application/x-bot" ??

".c4t"="application/x-c4t" ??

".c90"="application/x-c90" ??

".cal"="application/x-cals" ??

".cat"="application/vnd.ms-pki.seccat" ??

".cdf"="application/x-netcdf" ??

".cdr"="application/x-cdr" ??

".cel"="application/x-cel" ??

".cer"="application/x-x509-ca-cert" ??

".cg4"="application/x-g4" ??

".cgm"="application/x-cgm" ??

".cit"="application/x-cit" ??

".class"="java/*" ??

".cml"="text/xml" ??

".cmp"="application/x-cmp" ??

".cmx"="application/x-cmx" ??

".cot"="application/x-cot" ??

".crl"="application/pkix-crl" ??

".crt"="application/x-x509-ca-cert" ??

".csi"="application/x-csi" ??

".css"="text/css" ??

".cut"="application/x-cut" ??

".dbf"="application/x-dbf" ??

".dbm"="application/x-dbm" ??

".dbx"="application/x-dbx" ??

".dcd"="text/xml" ??

".dcx"="application/x-dcx" ??

".der"="application/x-x509-ca-cert" ??

".dgn"="application/x-dgn" ??

".dib"="application/x-dib" ??

".dll"="application/x-msdownload" ??

".doc"="application/msword" ??

".dot"="application/msword" ??

".drw"="application/x-drw" ??

".dtd"="text/xml" ??

".dwf"="Model/vnd.dwf" ??

".dwf"="application/x-dwf" ??

".dwg"="application/x-dwg" ??

".dxb"="application/x-dxb" ??

".dxf"="application/x-dxf" ??

".edn"="application/vnd.adobe.edn" ??

".emf"="application/x-emf" ??

".eml"="message/rfc822" ??

".ent"="text/xml" ??

".epi"="application/x-epi" ??

".eps"="application/x-ps" ??

".eps"="application/postscript" ??

".etd"="application/x-ebx" ??

".exe"=