jQuery.ajaxPrefilter() function is used to specify the callback function for pre-processing Ajax parameter options.
Before all parameter options are processed by the jQuery.ajax() function, you can use the callback function set by this function to change any parameter options in advance.
You can also specify data type(dataType) to preprocess only parameter options of the specified data type.
This function can be called multiple times to specify different callback functions for AJAX requests of different data types.
This function belongs to the global jQuery object.
Syntax
jQuery 1.5 adds this static function.
jQuery.ajaxPrefilter([ dataType ,] handler )
Parameters
dataType optional/StringType
One or more A string composed of data types separated by spaces. If this parameter is not specified, all data types are represented. Available data types are "xml", "html", "text", "json", "jsonp", "script". The string is any combination between them (multiple types are separated by spaces), for example: "xml", "text html", "script json jsonp".
handlerFunction type
Callback function used for preprocessing parameter options. It has the following 3 parameters:
options: (Object object) All parameter options of the current AJAX request.
originalOptions: (Object) Unmodified parameter options passed to the $.ajax() method.
jqXHR: The jqXHR object of the current request (the XMLHttpRequest object encapsulated by jQuery).
Return value
The jQuery.ajaxPrefilter() function has no return value, or its return value is undefined.
Example & Description
The following is jQuery sample code related to the jQuery.ajaxPrefilter() function to demonstrate the specific usage of the jQuery.ajaxPrefilter() function:
//设置AJAX的全局默认选项 $.ajaxSetup( { url: "/index.html" , // 默认URL aysnc: false , // 默认同步加载 type: "POST" , // 默认使用POST方式 headers: { // 默认添加请求头 "Author": "CodePlayer" , "Powered-By": "CodePlayer" } , error: function(jqXHR, textStatus, errorMsg){ // 出错时默认的处理函数 // 提示形如:发送AJAX请求到"/index.html"时出错[404]:Not Found alert( '发送AJAX请求到"' + this.url + '"时出错[' + jqXHR.status + ']:' + errorMsg ); } } ); // 指定预处理参数选项的函数 $.ajaxPrefilter( function(options, originalOptions, jqXHR){ // options对象 包括accepts、crossDomain、contentType、url、async、type、headers、error、dataType等许多参数选项 // originalOptions对象 就是你为$.ajax()方法传递的参数对象,也就是 { url: "/index.php" } // jqXHR对象 就是经过jQuery封装的XMLHttpRequest对象(保留了其本身的属性和方法) options.type = "GET"; // 将请求方式改为GET options.headers = { }; // 清空自定义的请求头 }); // 执行AJAX请求 $.ajax( { url: "/index.php" } );
jQuery The .ajaxPrefilter() function can also preprocess only the parameter options of the AJAX request of the specified data type (dataType). The jQuery code looks like this:
//设置AJAX的全局默认选项 $.ajaxSetup( { url: "/index.html" , // 默认URL aysnc: false , // 默认同步加载 type: "POST" , // 默认使用POST方式 headers: { // 默认添加请求头 "Author": "CodePlayer" , "Powered-By": "CodePlayer" } , error: function(jqXHR, textStatus, errorMsg){ // 出错时默认的处理函数 // 提示形如:发送AJAX请求到"/index.html"时出错[404]:Not Found alert( '发送AJAX请求到"' + this.url + '"时出错[' + jqXHR.status + ']:' + errorMsg ); } } ); // 指定预处理参数选项的函数,只预处理dataType为json或html类型的AJAX请求 $.ajaxPrefilter( "json html", function(options, originalOptions, jqXHR){ // options对象 包括accepts、crossDomain、contentType、url、async、type、headers、error、dataType等许多参数选项 // originalOptions对象 就是你为$.ajax()方法传递的参数对象,也就是 { url: "/index.php" } // jqXHR对象 就是经过jQuery封装的XMLHttpRequest对象(保留了其本身的属性和方法) if( options.data == null && options.type == "POST"){ options.type = "GET"; // 将请求方式改为GET options.headers = { }; // 清空自定义的请求头 } }); // 执行AJAX请求 $.ajax( { url: "/index.php" } ); // 执行AJAX请求(该请求会被预处理) $.ajax( { url: "action.php?type=json", dataType: "json" } );
The above is the detailed content of Detailed explanation of jQuery.ajaxPrefilter() function usage. For more information, please follow other related articles on the PHP Chinese website!