error 指定Ajax请求失败之后执行的函数。该函数还传入3个参数:第一个是jqXHR对象、 第二个是请求状态字符串(null、 'timeout'、 'error'、 'abort'和'parsererror')、 第三是错误信息字符串(响应状态的文本描述部分,例如'Not Found'或'Internal Server Error')。跨域脚本和跨域JSONP请求不会调用该函数。
success 指定Ajax请求成功完成之后执行的函数。该函数还传入3个参数:第一个是请求返回的数据data、第二个是响应状态字符串textStatus、第三个是jqXHR对象。
textStatus 请求状态值说明:
abort 表示请求是jqXHR对象的abort方法终止的
error 表示一般的错误,这类错误通常是由服务器报告的
notmodified 表示这次请求得到的内容与上一次请求没有差别
parsererror 表示服务器返回的数据无法正常解析
success 表示请求成功完成
timeout 表示在服务器返回信息之前请求已经超时
dataType (指定返回的数据类型)可能值:
'xml' :返回XML文档,可使用jQuery进行处理。
'html': 返回HTML字符串。
'script': 返回JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意:在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)
'json': 返回JSON数据。JSON数据将使用严格的语法进行解析(属性名必须加双引号,所有字符串也必须用双引号),如果解析失败将抛出一个错误。从jQuery 1.9开始,空内容的响应将返回null或{}。
'jsonp': JSONP格式。使用JSONP形式调用函数时,如"url?callback=?",jQuery将自动替换第二个?为正确的函数名,以执行回调函数。
'text': 返回纯文本字符串。
statusCode 一个 HTTP响应状态码和当请求响应相应的状态码时执行的函数组成的对象(例子):
$.ajax({
url: 'example.php',
statusCode: {
404: function(){
alert('找不到页面');
},
200: function(){
alert('请求成功');
}
}
});
(1)全局设置
除了一个个参数设置外,如果你的所有Ajax请求都需要设置settings中某些参数时,你可以使用 $.ajaxSetup() 函数进行全局设置(从1.9版本后,仅在document上调用)。
$.ajaxSetup({
timeout: 5000
});
ajaxPrefileter()
指定预先处理Ajax参数选项的回调函数。在所有参数选项被jQuery.ajax()函数处理之前,你可以使用该函数设置的回调函数来预先更改任何参数选项。
$.ajaxPrefilter( [ dataType ,] handler);
参数:
dataType :一个或多个用空格隔开的数据类型所组成的字符串。如果未指定该参数,则表示所有数据类型。可用的数据类型为"xml"、 "html"、 "text"、 "json"、 "jsonp"、 "script"。该字符串为它们之间的任意组合(多种类型用空格隔开),例如:"xml"、 "text html"、 "script json jsonp"。
handler : 用于预处理参选项的回调函数,它会传入三个参数:
handler(options,originalOpetions,jqXHR)
options : 当前Ajax请求的所有参数选项
originalOptions : 传递给$.ajax()方法的未经修改的残血选项
jqXHR : 当前请求的jqXHR对象。
(2)事件方法
ajaxComplete(function) 注册在Ajax请求完成后执行的函数(不管请求成功或失败)
ajaxError(function) 注册在Ajax请求失败后执行的函数
ajaxSend(function) 注册在Ajax请求开始之前的执行的函数
ajaxStart(function) 注册在Ajax请求开始时执行的函数
ajaxStop(function) 注册在所有Ajax请求完成之后执行的函数
ajaxSuccess(function) 注册在Ajax请求成功完成之后执行的函数
除了ajaxStop回调函数不会收到任何参数,其他回调函数则会接收到以下三个参数(ajaxError方法还会额外得到一个描述出错信息的参数):
参数说明:
event : 描述当前事件的Event对象
jqXHR : 描述当前请求的jqXHR对象
settings : 包含当前请求配置信息对象。
$(document).ajaxComplete(function(event,jqXHR,settings){});
$(document).ajaxError(function(event,jqXHR,settings,errorMsg){})
errorMsg :描述出错信息的参数
注意:从1.9版本开始,上面这些事件方法仅允许在 document 对象上使用,而且这些方法必须在发起任何Ajax请求之前调用,以确保每一个Ajax请求正确触发注册的函数。