window.location.href仅在清除IE上的浏览器缓存后才有效

时间:2016-11-16 10:03:49

标签: javascript internet-explorer caching

我遇到了非常奇怪的问题。

这是代码示例

$.ajax({
    method: "POST",
    data: content,
    url: '/signin/',
    success: function (response) {
        window.location.href = 'test.html';
    }, 
    error: function (xhr, status, err) {
        errorHandler(xhr);
    }
});

首先,我认为重定向仅在打开调试器后才能工作,并在该方向上进行搜索 根据结果​​和线程,我评论了所有console.log语句。 没有运气。

然后发现只有重定向不起作用 然后我试了一下 window.location.replace("test.html");
window.location.assign("test.html");
window.location.href = test.html
window.open('test.html','_self', null , false);setTimeout('window.navigate("test.html");', 1); 仍然没有运气。

现在我想出了当我打开调试器并清除浏览器的缓存并再次关闭调试器时,重定向只能在此之后才能工作一次。

要获得重定向工作,我必须每次都清除浏览器的缓存,或者必须保持调试器处于打开状态。

如何在不打开开发人员工具的情况下获得重定向工作?

我感谢您的帮助。

感谢。

2 个答案:

答案 0 :(得分:0)

这可能是因为您的浏览器正在缓存内容...让我们看看您是否使用了chrome,并且您打开了开发者模式,您可以看到: enter image description here

也许等同于......

嗯,这对于javascript开发来说非常烦人,因为我们必须打开开发人员工具以确保我们的脚本不被浏览器缓存。但由于浏览器主要面向消费者而非开发人员,因此我们必须自己调整浏览器,包括每次都清除缓存,或者让开发人员窗口打开。

希望这个帮助

编辑: 希望在您使用IE时提供此帮助: enter image description here

答案 1 :(得分:0)

实际重定向不是问题 还有另一个bizzare问题, IE在开发人员工具未打开时使用缓存响应,如this answer中所述。

所以我刚刚将cache : false添加到我的ajax请求中。