2012-04-20 158 views
1

我想加上额外参数查询字符串每个Ajax调用追加额外的参数来调用Ajax查询字符串

假设原来的网址是:/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'; 
    }); 

的问题是:在一次点击,则网址:/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对象。现在我很困惑:)

回答

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'; 
    } 
}); 
+0

我简单的问题,在实际项目中,附加部件是动态的,不断变化。所以我不能做'indeoxOf'检查。谢谢! – nandin 2012-04-20 15:04:21

+0

我将我的国旗加入了网址,问题解决了。谢谢! – nandin 2012-04-20 15:39:56

相关问题