jQuery的所有Ajax工具最后都会调用jQuery.ajax()函数;
jQuery.ajax()仅接受一个参数:一个选项对象,该对象的属性指定Ajax请求如何执行的很多细节.
jQuery.getScript(url,callback)与以下的jQuery.ajax()的调用等价
jQuery.ajax({
url:url,
type: “get”,
data:null,
dataType:“script”,
success:callback
});
可以通过给jQuery.ajaxSetup()传入一个选项对象来设置任意选项的默认值:
jQuery.ajaxSetup({
timeout:2000, //在两秒后取消所有的Ajax请求
cache:false //通过给URL添加时间戳来禁用浏览器缓存
});
指定的timeout和cache选项会在所有未指定这两个选项的值的Ajax请求中使用(包括jQuery.get(),jQuery.set());
通用选项
jQuery.ajax()中最常用的选项如下
- type
指定HTTP的请求方法.默认值是"get",另一个常用值是"post". - url
要获取的URL。对于GET请求,data选项会添加到该URL后.对于JSONP请求当cache选项为false时,jQuery可以添加参数到URL中. - data
添加到URL中(对get请求)或在请求的内容体中(对POST请求)发送的数据.可以是字符串或对象.通常会把对象转化为字符串. - dataType
指定响应数据的预期类型,以及jQuery处理该数据的方式.合法值
“text”,“html”,“xml”,“script”,“json”,“jsonp”, - contentType
指定请求的HTTP Content-type头。默认是"application/x-www-form-urlencoded", 如果将type选项设置为"POST",想发送纯文本或XML文档作为请求体时,需要设置该选项 - timeout
超时时间,单位毫秒.如果设置了该选项,当请求没有在指定超时时间内完成时,请求会取消同事触发error回调,回调中的状态码参数为"timeout".默认时间是0,表示除非请求完成,否则永远不会取消 - cache
对于get请求,如果该选项设置为false,jQuery会添加一个"_="参数到URL中,或替换已经存在的同名参数.该参数的值是当前时间。这个可以基于浏览器的缓存.因为每次请求的URL都不一样 - global
该选项指定jQuery是否应该触发上面描述的Ajax请求过程的事件.默认值是true;设置该选项为false会禁用Ajax相关的所有事件.取名为"global"是因为jQuery通常会全局的触发这些事件,而不是在具体某个对象上. - ifModified:???;
回调
下面的选项指定在Ajax请求的不同阶段调用的函数.
注意:jQuery也会将Ajax请求过程的消息当做事件发送(除非设置了global选项为false);
- context:
该选项指定回调函数在调用时的上下文对象-this - beforeSend:
该选项指定Ajax请求发送到服务器之前激活的回调函数.
第一个参数是XMLHttpRequest对象,第二个参数是该请求的选项对象。
如果该回调函数返回false,Ajax请求会取消, 注意跨域的"script"和"jsonp"
请求没用使用XMLHttpRequest对象,因此不会触发beforeSend回调 - success:
改选项指定Ajax请求成功完成时调用的回调函数.
第一个参数是服务器发送的数据;
第二个参数是jQuery状态码;
第三个参数是用来发送的XMLHttpRequest对象。
第一个参数的类型取决于dataType选项或Content-type头信息.
if(dataType==“xml”) 第一个参数是Document对象.
else if(dataType “json” || dataType"jsonp")第一个参数是服务器返回的JSON格式响应的解析结果
else if(dataType==“script”),则响应内容是所加载的文本内容(该脚本已经执行了,因此,在这种情况下可以忽略响应内容)
else 响应内容直接就是请求资源的文本内容
第二个参数的状态码通常是"success",但是如果设置了ifModified选项,
该参数就可能是"notmodified". 在这种情况下,服务器不发送响应并且不定义第1个参数."script"和"jsonp"类型的跨域请求通过script元素而不是XMLHttpRequest执行,因此对于那些请求,不会定义第三个参数 - error
该选项指定Ajax请求不成功时调用的回调函数。
第一个参数是该请求的XMLHttpRequest对象(如果用的到话).
第二个参数是jQuery的状态码.
可能是"error",“timeout”,“parsererror”.
注意:dataType为"script"的请求在返回无效JavaScript代码时不会触发错误.
脚本的任何错误都会直接忽略,调用的是success而不是error - complete
该选项指定Ajax请求完成时激活的回调函数。每一个Ajax请求或者成功时调用success,或者失败时调用error回调.在调用success或error后,jQuery会调用complete回调。传给complete回调的第一个参数是XMLHttpRequest对象,第二个参数则是jQuery的状态码
搞定收工