理解jquery ajax中的datatype属性选项值
jquery中ajax的dataType属性用于指定服务器返回的数据类型,如果不指定,jQuery将自动根据HTTP包MIME信息来智能判断,如果datatype选项不填写的话,会将返回的数据当成字符串处理。
一、ajax语法
jQuery.ajax([settings])
参数说明
settings:用于配置Ajax请求的键值对集合。可以通过$.ajaxSetup()设置任何选项的默认值。
二、ajax的datatype选项的值
1、"xml":返回XML文档,可用jQuery处理。
2、"html"::返回纯文本HTML信息;包含的script标签会在插入dom时执行。
3、"script"::返回纯文本JavaScript代码。不会自动缓存结果,除非设置了"cache"参数。注意:在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)
4、"json":返回JSON数据。
5、"jsonp":JSONP格式。使用JSONP形式调用函数时,如"myurl?callback=?"jQuery将自动替换?为正确的函数名,以执行回调函数,经常被用来同主域名下不同二级域名下的跨域请求。
6、"text":返回纯文本字符串。
下面是关于jqueryajax中的datatype相关问题
datatype设置为html的时候返回的只是纯文本,没有什么好说的,设置成xml的时候返回的是一个xmldocument对象,
比如返回下面这么一个xml
<xmlversion="1.0"encoding="utf-8"> <documentElement> <table> <provinceID>110000</provinceID> <province>北京市</province> <provinceID>120000</provinceID> <province>天津市</province> </table> </documentElement>
这就需要用XMLDocument之类来操作,还要考虑浏览器
其实jquery本身也可以解析xml,举个简单的例子
$.ajax({ type:"Get", dataType:"xml", url:"test.xml", success:function(datas){ $("province",datas).each(function(i){ alert($($("provinceID",datas)[i]).text()+"_"+$(this).text()); }); } });
test.xml里面的内容就是上面的xml,这样datas就是返回的xml文档对象,lz可以自己试一试
其实相对来说我更喜欢使用datatype:"json",使用json数据对于javascript来说解析起来就更方便了