我向服务器发送一个post请求,它返回一个JSP。现在如果我使用浏览器的刷新按钮,我会收到重新提交数据的确认,然后页面重新加载成功。
然而,当我尝试使用javascript刷新页面时,我没有得到任何确认框,并且重新加载也不起作用。我已经尝试了所有重装方法,如:
我认为问题在于,当我尝试使用javascript刷新时发送get请求,并且无法找到必要的参数。
这个问题只出现在Chrome中...它适用于Firefox和IE !!
答案 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();