Javascript Internet Explorer Ajax调用、缓存响应问题

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

我在等待页面中使用此javascript函数来检查我的web应用中的导出过程是否正在运行或已完成:

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,除非我知道我不在乎缓存能力!很高兴我能帮忙:)