1

各ajax呼び出しのクエリ文字列に追加のパラメーターを追加しようとしています

元の URL が: であると仮定する/customer/search?sort=Idと、処理された URL は次のようになります。

/customer/search?sort=Id&criteria=abc

これがコードです

   $.ajaxPrefilter(function (options, originalOptions, jqXHR) {
        // Append the initial search criteria
        options.url += '&criteria=abc';
   });

問題は次のとおりです。ワンクリックすると、URL は次のようになります。/customer/search?sort=Id&criteria=abc

2 回目のクリック後、URL は次のようになります。/customer/search?sort=Id&criteria=abc&criteria=abc

それは加算し続けます

jQuery ajax 呼び出しが同じoptionsオブジェクトを使用しているように見えるので、カスタム フラグを追加しました

  $.ajaxPrefilter(function (options, originalOptions, jqXHR) {
        // Append the initial search criteria
        if (!options.processed) {
            options.url += '&criteria=abc';
            options.processed = true;
        }
   });

問題は次のとおりoptions.processedですundefined。すべての ajax 呼び出しが一意のoptionsオブジェクトを使用しているようです。今私は混乱しています:)

4

1 に答える 1

2

単純にできませんか

$.ajaxPrefilter(function (options, originalOptions, jqXHR) {
     //check if the new parameter has already ben added
     if(options.url.indexOf('&criteria') === -1){
        options.url += '&criteria=abc';
     }
});
于 2012-04-20T15:00:30.677 に答える