欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

理解jquery ajax中的datatype属性选项值

程序员文章站 2023-10-31 15:21:16
jquery中ajax的datatype属性用于指定服务器返回的数据类型,如果不指定,jquery 将自动根据http包mime信息来智能判断,如果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": 返回纯文本字符串。

下面是关于jquery ajax中的datatype相关问题

datatype设置为html的时候返回的只是纯文本,没有什么好说的,设置成xml的时候返回的是一个xml document对象,
比如返回下面这么一个xml

< xml version="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来说解析起来就更方便了