参数
类型
说明
url
String
请求HTML页的地址
data(可选)
Object
发送至服务器的key/ value 数据会作为QueryString附加到请求URL中
callback(可选)
Function
载入成功的回调函数(只有当Response的返回状态是success才调用该方法)
type(可选)
String
服务器返回内容的格式,包括xml、html、script、json、text和_default
$.post()方法
它与$.get()方法的结构和使用方式相同,有如下区别
GET请求会将参数跟张乃URL后进行传递,而POST请求则是作为Http消息的实体内容发送给web服务器,在ajax请求中,这种区别对用户不可见
GET方式对传输数据有大小限制(通常不能大于2KB),而使用POST方式传递的数据量要比GET方式大得多(理论不受限制)
GET方式请求的数据会被浏览器缓存起来,因此其他人可以从浏览器的历史纪录中读取这些数据,如:账号、密码。在某种情况下,GET方式会带来严重的安全问题,而POST相对来说可以避免这些问题
GET和POST方式传递的数据在服务端的获取也不相同。在PHP中,GET方式用$_GET[]获取;POST方式用$_POST[]获取;两种方式都可用$_REQUEST[]来获取
总结
使用load() 、$.get()和$.post()方法完成了一些常规的Ajax程序,如果还需要复杂的Ajax程序,就需要用到$.ajax()方式
$.ajax()方法
$.ajax()方法是jquery最底层的Ajax实现,它的结构为$.ajax(options)
该方法只有一个参数,但在这个对象里包含了$.ajax()方式所需要的请求设置以及回调函等信息,参数以key / value存在,所有参数都是可选的
$.ajax()方式常用参数解析
参数
类型
说明
url
String
(默认为当前页地址)发送请求的地址
type
String
请求方式(POST或GET)默认为GET
timeout
Number
设置请求超时时间(毫秒)
dataType
String
预期服务器返回的类型。可用的类型如下
xml:返回XML文档,可用jquery处理
html:返回纯文本的HTML信息,包含的script标签也会在插入DOM时执行
script:返回纯文本的javascript代码。不会自动缓存结果,除非设置cache参数。注意:在远程请求时,所有的POST请求都将转为GET请求
json:返回JSON数据
jsonp:JSONP格式,使用jsonp形式调用函数时,例如:myurl?call back=?,jquery将自动替换后一个?为正确的函数名,以执行回调函数
text:返回纯文本字符串
beforeSend
Function
发送请求前可以修改XMLHttpRequest对象的函数,例如添加自定义HTTP头。在beforeSend中如果返回false可以取消本次Ajax请求。XMLHttpRequest对象是唯一的参数
function(XMLHttpRequest){
this;//调用本次Ajax请求时传递的options参数
}
complete
Function
请求完成后的回调函数(请求成功或失败时都调用)
参数:XMLHttpRequest对象和一个描述成功请求类型的字符串
function(XMLHttpRequest,textStatus){
this;//调用本次Ajax请求时传递的options参数
}
success
Function
请求成功后调用的回调函数,有两个参数
(1)由服务器返回,并根据dataTyppe参数进行处理后的数据
(2)描述状态的字符串
function(data,textStatus){
//data可能是xmlDoc、``jsonObj、html、text等
this;//调用本次Ajax请求时传递的options参数
}
error
Function
请求失败时被调用的函数
global
Boolean
默认为true。表示是否触发全局Ajax事件,设置为false将不会触发。AjaxStart或AjaxStop可用于控制各种Ajax事件