Javascript 如何自动附加到jQueryAjax调用的url
因此,我的站点上有很多ajax调用,我想用一个随机字符串附加所有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 +=
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;
});