$.ajaxPrefilter([type],fn) | jQuery API 3.2 中文文档 | jQuery API 在线手册

jQuery API 3.2.1

推荐办理招商信用卡,新户首刷礼,五折享美食,需要的速度围观~click here
首页  >  ajax  > $.ajaxPrefilter([type],fn) 源码下载

返回值:undefinedjQuery.ajaxPrefilter( [dataTypes] , handler(options, originalOptions, jqXHR) )


Handle custom Ajax options or modify existing options before each request is sent and before they are processed by $.ajax().

参数见 '$.ajax' 说明。


[dataTypes] V1.5

An optional string containing one or more space-separated dataTypes

handler(options, originalOptions, jqXHR) V1.5

A handler to set default values for future Ajax requests.



A typical prefilter registration using $.ajaxPrefilter() looks like this:

$.ajaxPrefilter( function( options, originalOptions, jqXHR ) { 
   // Modify options, control originalOptions, store jqXHR, etc 
  • options are the request options
  • ooriginalOptions are the options as provided to the ajax method, unmodified and, thus, without defaults from ajaxSettings
  • ojqXHR is the jqXHR object of the request


Prefilters are a perfect fit when custom options need to be handled. Given the following code, for example, a call to $.ajax() would automatically abort a request to the same URL if the custom abortOnRetry option is set to true:

var currentRequests = {};    
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
    if ( options.abortOnRetry ) {
      if ( currentRequests[ options.url ] ) {
        currentRequests[ options.url ].abort();
      currentRequests[ options.url ] = jqXHR;


Prefilters can also be used to modify existing options. For example, the following proxies cross-domain requests through http://mydomain.net/proxy/:

$.ajaxPrefilter( function( options ) {
    if ( options.crossDomain ) {
      options.url = "http://mydomain.net/proxy/" + encodeURIComponent( options.url );
      options.crossDomain = false;


If the optional dataTypes argument is supplied, the prefilter will be only be applied to requests with the indicated dataTypes. For example, the following only applies the given prefilter to JSON and script requests:

$.ajaxPrefilter( "json script", function( options, originalOptions, jqXHR ) {
    // Modify options, control originalOptions, store jqXHR, etc


The $.ajaxPrefilter() method can also redirect a request to another dataType by returning that dataType. For example, the following sets a request as "script" if the URL has some specific properties defined in a custom isActuallyScript() function:

$.ajaxPrefilter(function( options ) {
    if ( isActuallyScript( options.url ) ) {
      return "script";

This would ensure not only that the request is considered "script" but also that all the prefilters specifically attached to the script dataType would be applied to it.