Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Verwendung der jQuery.ajaxPrefilter()-Funktion

Detaillierte Erläuterung der Verwendung der jQuery.ajaxPrefilter()-Funktion

巴扎黑
巴扎黑Original
2017-07-08 11:37:542365Durchsuche

Die Funktion

jQuery.ajaxPrefilter() wird verwendet, um die Rückruffunktion für die Vorverarbeitung von Ajax-Parameteroptionen anzugeben.

Bevor alle Parameteroptionen von der jQuery.ajax()-Funktion verarbeitet werden, können Sie die von dieser Funktion festgelegte Rückruffunktion verwenden, um alle Parameteroptionen im Voraus zu ändern.

Sie können auch einen Datentyp(dataType) angeben, um nur Parameteroptionen des angegebenen Datentyps vorzuverarbeiten.

Diese Funktion kann mehrmals aufgerufen werden, um verschiedene Rückruffunktionen für AJAX-Anfragen verschiedener Datentypen anzugeben.

Diese Funktion gehört zum globalen jQuery-Objekt.

Syntax

jQuery 1.5 fügt diese statische Funktion hinzu.

jQuery.ajaxPrefilter( [ dataType ,] handler )

Parameter

dataType optional/StringTyp

Ein oder mehrere A Zeichenfolge bestehend aus durch Leerzeichen getrennten Datentypen. Wenn dieser Parameter nicht angegeben ist, werden alle Datentypen dargestellt. Verfügbare Datentypen sind „xml“, „html“, „text“, „json“, „jsonp“, „script“. Die Zeichenfolge ist eine beliebige Kombination zwischen ihnen (mehrere Typen werden durch Leerzeichen getrennt), zum Beispiel: „xml“, „text html“, „script json jsonp“.

HandlerFunktionstyp

Rückruffunktion zur Vorverarbeitung von Parameteroptionen. Es verfügt über die folgenden 3 Parameter:

Optionen: (Objekt ) Alle Parameteroptionen der aktuellen AJAX-Anfrage.

originalOptions: (Objekt) Unveränderte Parameteroptionen, die an die Methode $.ajax() übergeben werden.

jqXHR: Das jqXHR-Objekt der aktuellen Anfrage (das von jQuery gekapselte XMLHttpRequest-Objekt).

Rückgabewert

Die Funktion jQuery.ajaxPrefilter() hat keinen Rückgabewert oder ihr Rückgabewert ist undefiniert.

Beispiel und Beschreibung

Das Folgende ist der jQuery-Beispielcode im Zusammenhang mit der Funktion jQuery.ajaxPrefilter(), um die spezifische Verwendung der Funktion jQuery.ajaxPrefilter() zu demonstrieren:

//设置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"
} );

Die Funktion jQuery.ajaxPrefilter() kann auch nur die Parameteroptionen der AJAX-Anfrage des angegebenen Datentyps (dataType) vorverarbeiten. Der jQuery-Code sieht folgendermaßen aus:

//设置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"
} );

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung der jQuery.ajaxPrefilter()-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn