jQuery.ajaxPrefilter( [dataTypes ], handler )返回: undefined
描述: 在发送每个请求之前以及在 `$.ajax()` 处理它们之前,处理自定义 Ajax 选项或修改现有选项。
-
版本添加: 1.5jQuery.ajaxPrefilter( [dataTypes ], handler )
-
dataTypes类型: 字符串一个可选的字符串,包含一个或多个以空格分隔的 dataTypes
-
handler一个用于为未来的 Ajax 请求设置默认值的处理程序。
-
使用 `$.ajaxPrefilter()` 进行预过滤器注册的典型示例。
|
1
2
3
|
|
其中
- `options` 是请求选项
- `originalOptions` 是提供给 `$.ajax()` 方法的选项,未经修改,因此不包含 `ajaxSettings` 的默认值
- `jqXHR` 是请求的 jqXHR 对象
当需要处理自定义选项时,预过滤器非常适合。例如,给定以下代码,如果自定义 `abortOnRetry` 选项设置为 `true`,对同一 URL 的 `$.ajax()` 调用将自动中止请求。
|
1
2
3
4
5
6
7
8
9
10
|
|
预过滤器还可以用于修改现有选项。例如,以下代码通过 `https://mydomain.net/proxy/` 代理跨域请求。
|
1
2
3
4
5
6
|
|
如果提供了可选的 `dataTypes` 参数,预过滤器将仅应用于具有指定 dataTypes 的请求。例如,以下代码仅将给定预过滤器应用于 JSON 和脚本请求。
|
1
2
3
|
|
`$.ajaxPrefilter()` 方法还可以通过返回另一个 dataType 来将请求重定向到另一个 dataType。例如,如果 URL 在自定义 `isActuallyScript()` 函数中定义了某些特定属性,则以下代码会将请求设置为“script”。
|
1
2
3
4
5
|
|
这将确保不仅请求被视为“script”,而且所有专门附加到 script dataType 的预过滤器都将被应用于它。