jQuery.ajaxTransport( dataType, handler(options, originalOptions, jqXHR) )返回: undefined
描述: 创建一个对象,用于处理Ajax数据的实际传输。
-
添加的版本: 1.5jQuery.ajaxTransport( dataType, handler(options, originalOptions, jqXHR) )
传输(transport)是一个对象,它提供了两种方法,send 和 abort,内部使用由$.ajax()发出请求。传输(transport)是最高级的方法用来增强$.ajax()并且应仅作为当预过滤器(prefilters)和转换器(converters)无法满足你的需求的时候的最后的手段。
由于每个请求需要有自己的传输(transport)对象实例,传输不能直接注册。因此,你应该提供一个函数代替返回传输(transport)。
传输(transports)工厂注册使用$.ajaxTransport()。一个典型的注册看起来像这样:
|
1
2
3
4
5
6
7
8
9
10
11
12
|
|
以下的情况下:
-
options是请求的选项 -
originalOptions值作为提供给Ajax方法未经修改的选项,因此,没有ajaxSettings设置中的默认值 -
jqXHR是请求的jqXHR对象 -
headers是一个请求头信息(键 - 值)对象,该传输(transport)都可以发送,如果它支持 -
completeCallback是回调用于该请求Ajax的完成通知
completeCallback 具有以下签名:
|
1
|
|
以下的情况下:
status是响应的HTTP状态代码,像200是一个典型的成功,或404是没有找到资源。statusText是响应状态文本。responses(可选)是一个对象,它包含数据类型/值(dataType/value)包含响应运输提供的所有格式。(例如,一个原生的XMLHttpRequest对象设置reponses为{ xml: XMLData, text: textData },这样响应是一个XML文档)headers(可选)是一个字符串,其中包含所有的响应信息头,如果运输对它们的访问(类似于XMLHttpRequest.getAllResponseHeaders()提供的方法)。
就像预过滤器(prefilters),一个传输(transport)的工厂函数可以被连接到一个特定的 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
31
32
33
34
35
36
37
38
39
|
|
Handling Custom Data Types(处理自定义数据类型)
jQuery的Ajax实现了一套标准的数据类型,比如text, json, xml, 和 html。
在 $.ajaxSetup() 中使用converters选项
来增加或修改数据类型使用$.ajax()转换策略。
未更改的 jQuery 代码 本身包含一个列表的默认转换器,这有力地说明了可以如何使用它们:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
|
当你在$.ajaxSetup()全局的指定一个converters 选项,或者每次调用$.ajax(),这个对象将映射到默认的转换器,覆盖您所指定的那些,让其他不变。
例如,jQuery代码使用$.ajaxSetup()添加一个“text script”转换器:
|
1
2
3
4
5
6
7
8
9
10
11
|
|
