Ajax将不会加载并显示IE 11上的数据导致缓存

时间:2019-05-15 17:26:56

标签: javascript ajax debugging internet-explorer varnish

我使用Ajax来检查数据并将其显示在页面上,并且使用清漆缓存。 数据将显示在除IE 11之外的所有浏览器上,直到我停用清漆缓存为止。

function checkMyData() {
var surl = 'index.php?eID=thismydata';
if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) {
    surl += '&hash=' + Math.random();
}
$.ajax({
    type: "GET",
    url: siteurl + surl,
    asynchronous: true,
    data: 'mode=datalist' +
            '&initdatalist=' + initdatalist +
            '&datastr=' + datastr,      
    success: function (answer) {
        var response;
        try {
            response = eval('(' + answer + ')');
        } catch (err) {
            alert('Err: ' + answer);
            return;
        }
        if (initdatalist == 1)
            initdatalist = 0;
        $basic_cont = '<div class="row"><div class="col-md-6 col-md-offset-3"><p class="data-title">' + 
                response.firstmatch + response.otherdata + '</p></div></div>' +
                response.matches;

        $("#thisdaydata").empty();
        $($basic_cont).appendTo("#thisdaydata");
    }
});
}

所有浏览器(IE 11除外)的HTML输出:

<div id="thisdaydata">
<div class="row">
   <div class="col-md-6 col-md-offset-3">
       <p class="data-title">data here</span></p>
   </div>
</div>

IE 11的HTML输出:

<div id="thisdaydata"></div>

此ajax与IE 11不兼容吗?

1 个答案:

答案 0 :(得分:0)

IE将自动缓存GET请求的响应,而其他浏览器将让您决定是否要缓存结果。 IE成功发出GET请求后,它将不再进行AJAX调用,直到该对象上的缓存过期为止。您可以在ajax中添加cache : false值。有关更多详细信息和方法,您可以参考this articlethis question