Javascript Internet Explorer Ajax调用、缓存响应问题
我在等待页面中使用此javascript函数来检查我的web应用中的导出过程是否正在运行或已完成:Javascript Internet Explorer Ajax调用、缓存响应问题,javascript,jquery,ajax,Javascript,Jquery,Ajax,我在等待页面中使用此javascript函数来检查我的web应用中的导出过程是否正在运行或已完成: function waitForExport(token) { $.ajax({ type : "GET", url : 'export/status', data : { token : token }, success : function(data) { i
function waitForExport(token) {
$.ajax({
type : "GET",
url : 'export/status',
data : {
token : token
},
success : function(data) {
if (data.status == 'running') {
$('#waitContent').append('<span>RUNNING</span>');
setTimeout("waitForExport('" + token + "')", 5000);
}
if (data.status == 'done') {
$('#waitContent').append('<div>DONE</div>');
location.href = "export/results";
}
},
error : function(jqXHR, textStatus, errorThrown) {
alert(jqXHR.responseText);
}
});
}
函数waitForExport(令牌){
$.ajax({
键入:“获取”,
url:“导出/状态”,
数据:{
令牌:令牌
},
成功:功能(数据){
如果(data.status==“正在运行”){
$('#waitContent')。追加('RUNNING');
setTimeout(“waitForExport(““+token+”)”,5000);
}
如果(data.status==“完成”){
$('#waitContent')。追加('DONE');
location.href=“导出/结果”;
}
},
错误:函数(jqXHR、textStatus、errorshown){
警报(jqXHR.responseText);
}
});
}
它适用于Chrome和Firefox,但不适用于IE
使用InternetExplorer7/8时,进程似乎总是在运行,因为除了第一次,它不会发出任何其他服务器请求(我使用Eclipse调试器进行了验证)。它似乎缓存了第一个服务器响应,然后再也不会访问服务器了
有什么想法吗?您可以使用:
cache: false
在您的$.ajax()选项对象中
这样做的目的是在URL的末尾附加一个。=[TIMESTAMP]
(没有[]
)。这使浏览器认为它总是一个完全不同的请求,因为请求中使用了不同的查询字符串。您可以使用:
cache: false
在您的$.ajax()选项对象中
这样做的目的是在URL的末尾附加一个。=[TIMESTAMP]
(没有[]
)。这使浏览器认为它总是一个完全不同的请求,因为请求中使用了不同的查询字符串。没问题!我在InternetExplorer上测试AJAX时也注意到了这一点。这是一个痛苦的想法,但现在我知道要始终设置缓存:false,除非我知道我不在乎缓存能力!很高兴我能帮忙:)没问题!我在InternetExplorer上测试AJAX时也注意到了这一点。这是一个痛苦的想法,但现在我知道要始终设置缓存:false,除非我知道我不在乎缓存能力!很高兴我能帮忙:)