1.AJAX() 函数
对ajax() 函数指定2 个参数。 第 1 个参数指定的是目标URL。第2 个参数则是一个被指定了相关参数、所使用的HTTP 类型或回调函 数等信息的对象。也可以省略第1 个参数,而将URL 指定为第2 个参数中的对 象的属性。
通过 jQuery 执行 AJAX 操作
$.ajax('/foo', {
type: 'GET',
success: function (data, status, xhr) {
// 成功时将执行的处理
},
error: function (xhr, status, errorThrown) {
// 失败时将执行的处理
}
});
属性名 | 说明 |
---|---|
url | 请求发送目标的 URL |
type | 所使用的 HTTP 类型 |
timeout | 超时时间。单位为毫秒 |
async | 是否执行异步通信 |
crossDomain | 是否执行跨源通信 |
isLocal | 在访问文件系统等本地环境时值为 true |
data | 所发送的数据对象或字符串 |
processData | 是否不将 data 转换为查询字符串就发送 |
traditional | 该属性用于对将 data 转换为查询字符串时所用的序列化方式进行指定。如果被指定为 true,则通过老式 的方式,在转换时不对嵌套的对象进行序列化 |
headers | 请求头部 |
ifModified | 如果该值被指定为 true,则只有在数据被更改的时候请求才算发送成功 |
cache | 是否使用浏览器缓存 |
dataType | 通过字符串指定响应数据的类型。可指定为 xml、html、script、json 及 text 中的一种。回调函数将会把 数据转换为这里所指定类型后传递 |
accepts | 用于对 Accept 头部信息进行指定的值的映射。其键为 dataType,值为 Accept 头部信息所指定的值 |
mimeType | 强制覆写于 Content-Type 头部信息中的值 |
contents | 在通过 Content-Type 头部信息来判断响应数据的类型时所用的正则表达式的映射(其键为 dataType, 其值为正则表达式) |
converters | 用于分析响应数据的函数的映射。其键为转换前与转换后的数据类型以空格相连而成的字符串(如果是 由 text 转换为了 html 则是 "text html"),其值为函数 |
context | 回调函数内的 this 所引用的对象 |
beforeSend(xhr, settings) | 在发送前执行的回调函数。如果该函数返回了 false,则将取消请求的发送 |
success(data, status, xhr) | 在通信成功时执行的回调函数 error(xhr, status) 在通信失败时执行的回调函数 |
complete(xhr, status) | 在通信完成时执行的回调函数。在成功或失败时也将执行 |
dataFilter(data, type) | 用于对响应数据过滤的回调函数。该函数将在success()之前被执行,其结果作为data参数传递给success() |
statusCode | 用于指定每一个状态码的回调函数的映射。其键为状态码,其值为函数 |
jsonp | 在发送 JSONP 请求所使用的用于指定回调函数名的参数名。如果没有指定,则默认参数名为 callback |
jsonpCallback | JSONP 请求的回调函数名。如果没有指定,则会自动设定 |
scriptCharset | 指定读取 script 时所用的字符集。仅在 dataType 为 jsonp 或 script 时有效 |
global | 是否触发与 AJAX 相关的全局事件 |
xhr | 用于创建 XMLHttpRequest 对象的工厂函数 |
xhrFields | XMLHttpRequest 对象所设定的属性的映射 |
username | 在需要认证的访问中所用的用户名 |
password | 在需要认证的访问中所用的密码 |
2.AJAX() 的包装函数
函数 | 说明 |
---|---|
get(url, [data,] [success(data, status, xhr)] [dataType]) | 通过 GET 方式进行通信。 可以对发送的数据、成功时的回调函数,及响应的数据类型进行指定 |
post(url, [data,] [success(data, status, xhr)] [dataType]) | 通过 POST 方式进行通信。 参数与 get() 函数相同 |
getJSON(url, [data,] [success(data, status, xhr)]) | 通过 GET 方式获取 JSON 数据。 可以对发送的数据、通信成功时的回调函数进行指定 |
getScript(url, [success(data, status, xhr)]) | 通过 GET 方式获取 JavaScript 并执行。 可以对通信成功时的回调函数进行指定 |
可以通过ajaxSetup() 函数来更改ajax() 函数中所能设定的选项的默认值
3.全局事件
在使用ajax() 函数时将会触发多个事件。由于这些事件对任何元素都有效,因此被称为全局事件。 如果不希望触发全局事件,则需要通过 ajax() 函数的选项将 global 属性设置为 false。
方法名 | 侦听器的执行时机 |
---|---|
ajaxStart(func()) | AJAX 通信开始时。 即使有多个 AJAX 通信同时执行,也仅会被执行 1 次 |
ajaxSend(func(event, xhr, options)) | 请求发送前 |
ajaxSuccess(func(event, xhr, options)) | 通信成功时 |
ajaxError(func(event, xhr, options, error)) | 通信失败时 |
ajaxComplete(func(event, xhr, options)) | 通信结束时(无论通信成功还是失败) |
ajaxStop(func()) | 所有的 AJAX 通信结束时 |