我想使用以下方法重新加载页面:
window.location.reload(true);
但是我收到 POSTDATA 警告,因为刷新功能想要重新发送以前的 POST 表单数据。如何在没有此警告的情况下刷新我的页面?
更新:我无法控制该项目!我无法解决 POST 本身!
我想使用以下方法重新加载页面:
window.location.reload(true);
但是我收到 POSTDATA 警告,因为刷新功能想要重新发送以前的 POST 表单数据。如何在没有此警告的情况下刷新我的页面?
更新:我无法控制该项目!我无法解决 POST 本身!
没有警告你不能刷新;refresh 指示浏览器重复上一个操作。如果重复上一个操作涉及重新提交数据,则由浏览器选择是否警告用户。
您可以通过执行以下操作使用新会话重新导航到同一页面:
window.location = window.location.href;
仅更改window.location
JavaScript 是危险的,因为用户仍然可以点击后退按钮并重新提交帖子,这可能会产生意想不到的结果(例如重复购买)。PRG是一个更好的解决方案
为了避免这个问题,许多 web 应用程序使用 PRG 模式——而不是直接返回一个 HTML 页面,POST 操作返回一个重定向命令(使用 HTTP 303 响应代码(有时是 302)和 HTTP“位置”响应头),指示浏览器使用 HTTP GET 请求加载不同的页面。然后可以安全地为结果页面添加书签或重新加载,而不会产生意外的副作用。
我在使用 Rex 的解决方案无法重新加载锚点/散列 url(包括 #)时遇到了一些问题...
所以我最终删除了哈希部分:
window.location = window.location.href.split("#")[0];
要绕过 POST 警告,您必须使用完整 URL 重新加载页面。工作正常。
window.location.href = window.location.protocol +'//'+ window.location.host + window.location.pathname;
您可以使用 JavaScript:
window.location.assign(document.URL);
在 Firefox 和 Chrome 上为我工作
检查此链接:http : //www.codeproject.com/Tips/433399/PRG-Pattern-Post-Redirect-Get