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"=