Home >Web Front-end >JS Tutorial >Detailed explanation of jQuery.ajaxPrefilter() function usage

Detailed explanation of jQuery.ajaxPrefilter() function usage

巴扎黑
巴扎黑Original
2017-07-08 11:37:542380browse

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn