使用javascript刷新页面不起作用

时间:2011-10-04 07:47:43

标签: javascript google-chrome post



我向服务器发送一个post请求,它返回一个JSP。现在如果我使用浏览器的刷新按钮,我会收到重新提交数据的确认,然后页面重新加载成功。

然而,当我尝试使用javascript刷新页面时,我没有得到任何确认框,并且重新加载也不起作用。我已经尝试了所有重装方法,如:

  • location.reload()
  • window.location.reload()
  • window.location.href = window.location.href
  • history.go(0);

我认为问题在于,当我尝试使用javascript刷新时发送get请求,并且无法找到必要的参数。

这个问题只出现在Chrome中...它适用于Firefox和IE !!

5 个答案:

答案 0 :(得分:1)

reload方法可以使用缓存重新加载页面。指定force参数以使其从服务器获取页面:

window.location.reload(true);

答案 1 :(得分:1)

parent.window.location.reload(true);

为我工作了Chrome ...最后

解释:parent.window

对当前窗口或子帧的父级的引用。

如果窗口没有父窗口,则其父属性是对自身的引用。

当一个窗口加载到,或者,它的父窗口是嵌入窗口的元素的窗口。

答案 2 :(得分:0)

唯一的解决方案是使用一些额外的值调用相同的URL。

这是常规的重新加载脚本,这在IE& FF但不在Chrome& Safari浏览器。

window.location = location.href; 

要在所有浏览器类型上重新加载,请使用:

window.location = location.href + '?session=' + sMath.floor((Math.random() * 1000000) + 1);

在IE,FF,Chrome和Safari上测试过。

答案 3 :(得分:0)

我尝试了找到的所有可能的解决方案(ajax调用,各种摘要),但对我唯一可行的是从chrome禁用网络缓存,请参见此处Why isn't Google Chrome reloading my scripts? 我认为这不是生产解决方案,但是在开发过程中可以节省您一些搜索时间。问题似乎出在chrome的缓存甚至设置上

ViewController

在重新加载时不会清除缓存。在FF上效果很好。

答案 4 :(得分:-1)

要通过帖子请求“刷新”页面,您需要提交表单。您可以使用页面上已有的任何表单,也可以以编程方式创建一个表单。

var myForm = document.createElement("form");
myForm.action = "/my/url.jsp"; // Or use window.location, or something else.
myForm.method = "POST";
document.body.appendChild(myForm); // Needs to be in the DOM. Is not visible.
myForm.submit();