我想下载文件以供进一步使用,这是我发现的最佳方式,但是当我看到由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",
});
});
答案 0 :(得分:41)
只需使用cache:true。 jQuery会自动为你的URL末尾添加一个时间戳,确保永远不会缓存ajax请求。
来自jquery docs的
默认值: true,false表示dataType'script'和'jsonp' 如果设置为
false
,则会强制请求的页面不被浏览器缓存。 将缓存设置为false
还会附加查询字符串参数, “_=[TIMESTAMP]
”,指向网址。
$.ajaxSetup({'cache':true});
答案 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)。