IE没有激活Ajax

时间:2014-04-03 14:26:16

标签: javascript jquery ajax internet-explorer

我的页面上有以下脚本,在Chrome中,它运行正常,但IE没有进入success{}的{​​{1}}功能。它完全可以进入Ajax函数。当我尝试通过Complete{}函数发送data变量时,它只显示Complete{}作为内容。我该怎么做才能让它在IE中运行?

[object Object]

2 个答案:

答案 0 :(得分:1)

尝试在ajax请求中添加时间戳,出于某种原因,IE有时会对其进行缓存。

    $.ajax({
        url: 'http://somepage/page1/gettrendvars.aspx?timestamp='+ new Date().getTime(),
        success: function (data) {
            if (totalstrings.length < data.length || data === "") {
                alert("test1");
                if (trendstop === "false") {
                    alert("test2");
                    var iframe = document.getElementById("fm1");
                    iframe.src = iframe.src;
                    totalstrings = data;
                }
                if (data === "") {
                    trendstop = "true";
                } else {
                    trendstop = "false";
                }
            }
        },
        complete: function (data) {
            setTimeout(worker, 10000);
            $.ajax({
                url: 'http://somepage/page1/gettimevars.aspx?timestamp=' + new Date().getTime(),
                success: function (data) {
                    if (totaltimes != data) {
                        var iframe = document.getElementById("fm1");
                        iframe.src = iframe.src;
                        totaltimes = data;
                    }
                },
                complete: function (data) {
                }
            })();
        }
    });

答案 1 :(得分:0)

最后将它与Vinicius Souza的答案结合起来。利用$ .get()命令而不是ajax(),并激活时间戳来打破IE的缓存。

谢谢大家!

(function worker() {
    var rand;
    $.get("http://somepage/page1/gettrendvars.aspx?timestamp=" + new Date().getTime(), {})
        .done(function (data) {
        if (totalstrings.length < data.length || data === "") {
            if (trendstop === "false") {
                var iframe = document.getElementById("fm1");
                iframe.src = iframe.src;
                totalstrings = data;
            }
            if (data === "") {
                trendstop = "true";
            } else {
                trendstop = "false";
            }
        }

        $.get("http://somepage/page1/gettimevars.aspx?timestamp=" + new Date().getTime(), {})
            .done(function (data) {
            if (totaltimes != data) {
                var iframe = document.getElementById("fm1");
                iframe.src = iframe.src;
                totaltimes = data;
            }
        });
    })
        .fail(function () {
    });
    setTimeout(worker, 1500);
})();