Javascript 如何自动附加到jQueryAjax调用的url

Javascript 如何自动附加到jQueryAjax调用的url,javascript,jquery,Javascript,Jquery,因此,我的站点上有很多ajax调用,我想用一个随机字符串附加所有URL 那么,我们将如何实现这一目标 询问和回答以便可用。您可以使用以下代码: function makeid(count) { //Makes a unique string. var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; var text = ""; for (var x = 0; x < count; x++) { text +=

因此,我的站点上有很多ajax调用,我想用一个随机字符串附加所有URL

那么,我们将如何实现这一目标

询问和回答以便可用。

您可以使用以下代码:

    function makeid(count) { //Makes a unique string.
  var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  var text = "";
  for (var x = 0; x < count; x++) {
    text += possible.charAt(Math.floor(Math.random() * possible.length));
  }
  return text;
}

(function($) { //Extend the existing jquery ajax call.
    var _ajax = $.ajax;
    $.extend({
        ajax: function(o) {
                         if(o.url){
                            split='?';
                            if(o.url.indexOf('?') > 0) split='&'; //Do we already have a bunch of parameters in the url? if so, use & instead of ?
             o.url+=split + 'string=' + makeid(10); //append to the string
           }
           return _ajax.call(this,o);
          }
        });
    })(jQuery);
it工作示例:

您可以使用它修改任何$.ajax选项

如果您只是想阻止缓存,请使用jQuery的内置cache:false选项:


您是否正在尝试实现缓存清除器?设置cache:false将自动执行此操作。我不知道问这个问题的原始用户为什么想要它,但是我可以想象,特定的用例将位于列表的顶部。重复:如果只将url传递给$.ajax,则此代码将不起作用。您可以提供一个例子吗?$.ajax'/foo'不会更改任何内容,因为'/foo'。url未定义。我将检查参数[0]的类型,然后像您已经做的那样更改此字符串或对象url属性。那么叫这个,,arguments@GregBorbonus检查文档。它可以称为$.ajaxurl、options或$.ajaxoptions。你的代码只处理第二种形式。我更喜欢这个答案。
$.ajaxPrefilter(function(options) {
    options.url += getRandomString(); // defining getRandomString() left as an exercise for the reader
});
$.ajaxPrefilter(function(options) {
    options.cache = false;
});