我正在尝试为每个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
对象。现在我很困惑:))
答案 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';
}
});