33

我想下载文件以供进一步使用,这是我找到的最好方法,但是当我看到由beforeSend事件创建的日志时,URL 已被如下查询字符串修改:

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",
            });
});
4

2 回答 2

50

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

来自 jquery 文档

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

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

Jquery Ajax 文档

于 2012-09-01T06:49:49.340 回答
-1

我也有这个问题,我发现问题出在网址上。您应该使用 https,而不是使用 http。所以这就是我的意思,而不是这个:

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

用这个:

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

我想指出,我的案例是使用 IIS 服务器作为 localhost(asp.net、knout 和 JQuery Ajax)。

于 2019-02-28T15:11:25.227 回答