如何重新加载一个没有POSTDATA警告的页面?
我想重新加载一个页面使用:
window.location.reload(true); 但是我收到POSTDATA警告,因为刷新function要重新发送以前的POST表单数据。 如何在没有此警告的情况下刷新我的页面?
更新:我没有控制该项目! 我无法解决邮政本身!
 只是在JavaScript中改变window.location是危险的,因为用户仍然可以点击后退button并重新提交post,这可能会有意想不到的结果(如重复购买 )。  PRG是一个更好的解决scheme 
使用Post / Redirect / Get(PRG)模式
为了避免这个问题,许多Web应用程序使用PRG模式,而不是直接返回HTML页面,POST操作返回一个redirect命令(使用HTTP 303响应代码(有时是302)和HTTP“Location”响应头)指示浏览器使用HTTP GET请求加载不同的页面。 然后可以安全地将结果页面join书签或重新加载而没有意外的副作用。
没有警告就不能刷新; 刷新指示浏览器重复上一个操作。 如果重复上一个操作涉及重新提交数据,则select是否警告用户是由浏览器决定的。
您可以通过执行以下操作重新导航至同一页面:
 window.location = window.location.href; 
我有一些问题与锚/散列url(包括#)不重装使用雷克斯的解决scheme…
所以我最终通过删除哈希部分结束:
 window.location = window.location.href.split("#")[0]; 
要绕过POST警告,您必须使用完整的URL重新加载页面。 工作正常。
 window.location.href = window.location.protocol +'//'+ window.location.host + window.location.pathname; 
怎么样window.location.replace(window.location.href);
如果您处于完成发布数据的阶段,并且只想重新查看页面,则可以使用window.location,甚至可以附加一个随机string作为查询参数,以保证新版本页。
你可以使用JavaScript:
 window.location.assign(document.URL); 
在Firefox和Chrome上为我工作
检查这个链接: http : //www.codeproject.com/Tips/433399/PRG-Pattern-Post-Redirect-Get
Nikl的版本没有通过获取查询参数,我使用了下面的修改版本:
 window.location.href = window.location.protocol +'//'+ window.location.host + window.location.pathname + window.location.search; 
或者在我的情况下,我需要刷新最上面的页面\ frame,所以我使用了以下版本
 window.top.location.href = window.top.location.protocol +'//'+ window.top.location.host + window.top.location.pathname + window.top.location.search; 
 <html:form name="Form" type="abc" action="abc.do" method="get" onsubmit="return false;"> 
  method="get" – 解决问题。 
  if method="post"那么只有警告来了。 
嗨如果您使用GET方法,而不是POST,那么我们不能表单提交值。 如果你使用window.opener.location.href = window.opener.location.href; 那么我们可以触发数据库,我们可以得到的价值,但唯一的事情是JSP是不刷新事件虽然具有forms值的scriplet
问候帕拉尼
我已经写了一个函数,将重新加载页面没有提交后,它也将与哈希。
 我通过在名为reload的URL中添加/修改GET参数来完成此操作,方法是使用当前时间戳以ms为单位更新其值。 
 var reload = function () { var regex = new RegExp("([?;&])reload[^&;]*[;&]?"); var query = window.location.href.split('#')[0].replace(regex, "$1").replace(/&$/, ''); window.location.href = (window.location.href.indexOf('?') < 0 ? "?" : query + (query.slice(-1) != "?" ? "&" : "")) + "reload=" + new Date().getTime() + window.location.hash; }; 
 请记住,如果你想在href属性中触发这个函数,可以这样实现: href="javascript:reload();void 0;" 使它成功地工作。 
我的解决scheme的缺点是它会改变URL,所以这个“重新加载”不是一个真正的重新加载,而是一个不同的查询负载。 不过,它可以适合你的需求,就像它对我来说。