ホームページ > ウェブフロントエンド > jsチュートリアル > jQuery.ajaxPrefilter()関数の使い方の詳しい説明

jQuery.ajaxPrefilter()関数の使い方の詳しい説明

巴扎黑
リリース: 2017-07-08 11:37:54
オリジナル
2392 人が閲覧しました

jQuery.ajaxPrefilter() 関数は、Ajax パラメーター オプションを前処理するための コールバック関数 を指定するために使用されます。

すべてのパラメーター オプションが jQuery.ajax() 関数によって処理される前に、この関数によって設定されたコールバック関数を使用して、事前にパラメーター オプションを変更できます。

データ型(dataType) を指定して、指定したデータ型のパラメーター オプションのみを前処理することもできます。

この関数を複数回呼び出して、異なるデータ型の AJAX リクエストに対して異なるコールバック関数を指定できます。

この関数はグローバル jQuery オブジェクトに属します。

Syntax

jQuery 1.5 では、この静的関数が追加されています。

jQuery.ajaxPrefilter([ dataType ,] handler )

parameters

dataTypeOptional/Stringtype

スペースで区切られた 1 つ以上のデータ型で構成される string。このパラメーターが指定されていない場合は、すべてのデータ型が表されます。利用可能なデータ型は「xml」、「html」、「text」、「json」、「jsonp」、「script」です。文字列はそれらの任意の組み合わせです (複数のタイプはスペースで区切られます)。たとえば、「xml」、「text html」、「script json jsonp」です。

handlerFunction type

パラメータオプションの前処理に使用されるコールバック関数。次の 3 つのパラメータがあります:

options: (Object ) 現在の AJAX リクエストのすべてのパラメータ オプション。

originalOptions: (オブジェクト) $.ajax() メソッドに渡される未変更のパラメーター オプション。

jqXHR: 現在のリクエストの jqXHR オブジェクト (jQuery によってカプセル化された XMLHttpRequest オブジェクト)。

戻り値

jQuery.ajaxPrefilter()関数には戻り値がないか、戻り値が未定義です。

例と説明

以下は、jQuery.ajaxPrefilter() 関数の具体的な使用法を示す、jQuery.ajaxPrefilter() 関数に関連する jQuery サンプル コードです:

//设置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.ajaxPrefilter() 関数は、指定されたデータ パラメーターのみを前処理することもできますタイプ (dataType) の AJAX リクエストのオプション。 jQuery コードは次のようになります:

//设置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"
} );
ログイン後にコピー

以上がjQuery.ajaxPrefilter()関数の使い方の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート