jQuery.ajaxTransport( dataType, handler )返回: undefined
描述: 创建一个用于处理 Ajax 数据实际传输的对象。
-
版本新增: 1.5jQuery.ajaxTransport( dataType, handler )
-
dataType类型: 字符串一个字符串,用于标识要使用的数据类型
-
handler一个处理函数,用于返回与第一个参数中提供的数据类型一起使用的新传输对象。
-
传输对象是提供两个方法(send 和 abort)的对象,$.ajax() 内部使用这些方法来发出请求。传输对象是增强 $.ajax() 的最先进方法,仅应在预过滤器和转换器不足时作为最后手段使用。
由于每个请求都需要自己的传输对象实例,因此不能直接注册传输对象。因此,您应该提供一个函数来返回传输对象。
传输工厂使用 $.ajaxTransport() 注册。典型的注册如下所示
|
1
2
3
4
5
6
7
8
9
10
11
12
|
|
其中
-
options是请求选项 -
originalOptions是提供给$.ajax()方法的选项,未经修改,因此不包含来自 ajaxSettings 的默认值 -
jqXHR是请求的 jqXHR 对象 -
headers是一个(键值)请求头的对象,如果传输对象支持,它可以传输这些请求头 -
completeCallback是用于通知 Ajax 请求完成的回调函数
completeCallback 具有以下签名
|
1
|
|
其中
-
status是响应的 HTTP 状态码,例如,对于典型的成功,为 200,对于找不到资源,为 404。 -
statusText是响应的状态文本。 -
responses(可选) 是一个包含 dataType/value 的对象,其中包含传输对象可以提供的所有格式的响应(例如,对于 XML 文档的响应,原生 XMLHttpRequest 对象会将 responses 设置为{ xml: XMLData, text: textData }) -
headers(可选) 是一个包含所有响应头的字符串,如果传输对象可以访问它们(类似于XMLHttpRequest.getAllResponseHeaders()会提供的内容)。
就像预过滤器一样,传输对象的工厂函数可以附加到特定的 dataType
|
1
2
3
|
|
以下示例展示了如何实现一个最小的图像传输对象
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
|
处理自定义数据类型
jQuery Ajax 实现带有一组标准数据类型,例如 text、json、xml 和 html。
使用 $.ajaxSetup() 中的 converters 选项来增强或修改 $.ajax() 使用的数据类型转换策略。
未压缩的 jQuery 源代码本身包含一个默认转换器列表,这有效地说明了如何使用它们
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
|
当您在 $.ajaxSetup() 中全局指定 converters 选项或在 $.ajax() 中按每次调用指定时,该对象将映射到默认转换器,覆盖您指定的那些并保持其他转换器不变。
例如,jQuery 源代码使用 $.ajaxSetup() 添加一个用于 "text script" 的转换器
|
1
2
3
4
5
6
7
8
9
10
11
|
|