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
是响应的 statusText。 -
responses
(可选) 是一个包含 dataType/value 的对象,其中包含传输可以提供的响应的所有格式(例如,本机 XMLHttpRequest 对象将 responses 设置为{ xml: XMLData, text: textData }
用于作为 XML 文档的响应) -
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
|
|