为什么有些数字被添加到ajax对象的url以及如何删除它们?

时间:2012-09-01 06:47:48

标签: jquery ajax query-string

我想下载文件以供进一步使用,这是我发现的最佳方式,但是当我看到由beforeSend事件创建的日志时,该URL已被queryString修改为:

http://blabla.com/test.swf?_=1346484617818

数字也是随机的。

我想知道为什么会这样!!!!

var url = 'http://blabla.com/test.swf';

$(document).ready(function () {
           $.ajaxSetup({
             'beforeSend':function () {
                          console.log(this.url);}
           });

        $.ajax({
            url:url,
            dataType:"script",
            });
});

2 个答案:

答案 0 :(得分:41)

只需使用cache:true。 jQuery会自动为你的URL末尾添加一个时间戳,确保永远不会缓存ajax请求。

来自jquery docs的

  

默认值: true,false表示dataType'script'和'jsonp'   如果设置为false,则会强制请求的页面不被浏览器缓存。   将缓存设置为false还会附加查询字符串参数,   “_=[TIMESTAMP]”,指向网址。

$.ajaxSetup({'cache':true});

Jquery Ajax Docs

答案 1 :(得分:0)

我也遇到了这个问题,我发现问题出在URL。而不是使用http,您应该使用https。所以这就是我的意思 代替这个:

var url = 'http://blabla.com/test.swf';

使用此:

var url = 'https://blabla.com/test.swf';

我想指出,我的案例是将IIS服务器用于localhost(asp.net,淘汰赛和JQuery Ajax)。