jQuery.ajaxTransport( dataType, handler )返回类型:undefined
描述:创建一个对象,处理实际的Ajax数据传输。
-
增补版本:1.5jQuery.ajaxTransport( dataType, handler )
-
dataType类型:String一个字符串,指示要使用的数据类型。
-
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,当资源没有找到时就是400。 -
statusText
是请求的状态文本。 -
responses
(可选参数)是一个对象,包含了dataType/value值,包含了传输可以提供的所有格式的响应(例如,一个原生的XMLHttpRequest对于XML文档的响应,将把响应设置为{ 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实现功能携带了一些标准dataType,譬如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()
调用中指定了converters
选项,此对象将映射到默认的转换器,重写你指定的那些,其它保留原样。
例如,jQuery源使用$.ajaxSetup()
来添加针对“text script”的转换器:
1
2
3
4
5
6
7
8
9
10
11
|
|