jQuery(八)、ajax
1、jquery.ajax(url[, settings])
通过http请求加载远程数据。
注意:所有的settings选择都可以通过$.ajaxsetup()函数来全局指定。
回调函数
在实际开发中,当我们需要处理$.ajax() 得到的数据,就需要使用到回调函数。
(1) beforesend:在发送请求之前调用,并且传入一个 xmlhttprequest 作为参数。
(2) error:在发送请求出差时调用。传入 xmlhttprequest 对象、描述错误类型的字符串以及一个异常对象。
(3) datafilter:在请求成功之后调用。传入返回的数据以及 'datatype'参数的值。并且必须返回新的数据传递给success回调函数。
(4) success:请求发送成功,后台返回数据调用。
(5) complete:在请求完成之后调用,无论成功或失败。出入 xmlhttprequest 对象,以及包含成功或失败代码的字符串。
settings选项
1 async boolean
默认为true,表示所有请求均为异步请求。如果要发送同步请求,将该属性设置为false。
2 beforesend(xhr) function
function (xmlhttprequest) { this; // 调用本次ajax请求时传递的options参数 }
3 cache boolean
默认为true,datatype为script和jsonp时默认为false,jquery1.2新功能,设置为false将不缓存此页面。
4 complete(xht, ts) function
function (xmlhttprequest, textstatus) { this; // 调用本次ajax请求时传递的options参数 }
5 contents map
一个以"{字符串:正则表达式}"配对的对象,用来确定jquery将如何解析响应,给定内容类型。
6 contenttype string
默认为"application/x-www-form-urlencoded",发送信息至服务器时的内容编码类型。
7 context object
这个对象用于设置ajax相关回调函数的上下文。即让回调函数内的 this 关键字指向这个对象(如果不设置这个参数,this将指向本次ajax请求时传递的options参数)。比如指定一个dom元素作为context参数,回调函数的this 就指向这个 dom元素。
8 converters map
默认为 {"* text":window.string, "text html":true, "text json":jquery.parsejson, "text xml":jquery.parsexml},表示对一个数据类型进行转换。每个转换器的值是一个函数,返回相应的转化值。
9 crossdomain map
默认false,表示同域请求。如你想强制跨域请求(如jsonp形式),设置为false,是服务端重定向到另一域。
10 data object, string
发送到服务器的数据。将自动转换为请求字符串格式。可以为字符串,如"&key1=val1&key2=val2",也可以是一个json对象。
11 datafilter function
给ajax返回的原始数据进行相应的处理。提供data和type两个参数:data是返回的原始数据,type是调用jquery.ajax时提供的datatype参数。
function (data, type) { // 对ajax返回的原始数据进行预处理 return data // 返回处理后的数据 }
12 datatype string
设置服务器返回的数据类型。如果不指定,jquery将自动根据http包mime信息来智能判断,比如xml mime就被识别为xml。可用值:
xml:返回xml文档。
html:返回纯文本html信息。
script:返回纯文本javascript代码。不会自动缓存结果,除非设置了cache参数。
json:返回json格式数据。
jsonp:返回jsonp格式。
text:返回纯文本字符串。
13 error function
function (xmlhttprequest, textstatus, errorthrown) { // 通常 textstatus 和 errorthrown 之中只有一个会包含信息 this; // 调用本次ajax请求时传递的options参数 }
14 global function
默认为true,触发全局ajax时间。如果设置为false,将不会触发全局ajax时间,如ajaxstart 或 ajaxstop可用于控制不用的 ajax事件。
15 headers map
默认为 {} 。以 key:value 的形式设置请求头信息。
16 mimetype string
一个mime类型,用来覆盖xmlhttprquest 的 mime类型。
17 password string
用于响应http访问认证请求的密码。
18 processdata boolean
默认为true,表示通过data选项传递进来的数据,如果是一个对象,都会转换成一个查询字符串,以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送dom 树信息或其他不希望转换的信息(如使用ajax上传文件),请设置为false。
19 statuscode map
默认为 {} ,一组数字的http代码和函数对象,当相应时调用了相应的代码。
// 如果响应状态是404,将触发以下警报: $.ajax({ statuscode: {404: function() { alert('page not found'); } });
20 success(data, textstatus)
21 timeout number
设置请求超时时间(毫秒)。此设置会覆盖全局设置$/ajaxsetup()
22 type string
请求方式,默认为get
23 url string
发送请求的地址。
24 username string
用于响应http访问认证请求的用户名。