将额外参数附加到ajax调用查询字符串

时间:2012-04-20 14:56:56

标签: jquery

我正在尝试为每个ajax调用

添加额外的参数来查询字符串

假设原始网址为:/customer/search?sort=Id,我希望处理后的网址看起来像

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

这是代码

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

问题是:点击一下后,网址就会变为:/customer/search?sort=Id&criteria=abc

第二次点击后,网址变为:/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对象。现在我很困惑:))

1 个答案:

答案 0 :(得分: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';
     }
});