嘿,我得到了firefox的确认。
To display this page, Firefox must send information that will repeat any action
(such as a search or order confirmation) that was performed earlier.
有人知道这个确认是为了什么吗?
如何摆脱这种局面?
尝试将请求类型从POST更改为GET。
如果不能改变请求类型,要重新加载页面,请尝试使用:
window.location=window.location;
代替
window.location.reload();
正如在回答阻止firefox重新加载确认的问题时所建议的那样
在Firefox、Chrome中工作得很好。。
当刷新POST请求(而不是GET请求)的结果页面时,会发生这种情况。
为了避免这种情况,您可以使用POST/redirect/GET模式。
我在自己创建的一个网站上遇到了这个问题。我最终完成了所有的后端工作,然后使用了以下代码:
header("Location: webpage.php", true, 303);
这将清除任何帖子数据并重定向页面,这样重新加载就不会再导致该消息。
刷新发送POST数据的页面时(例如,完成表单时)会发生这种情况。这个问题是问你是否想重新发送数据,因此,如果你进行了搜索,搜索到的术语将再次发送到服务器。当你填写了一个订购了东西的表格时,这是很危险的,所以刷新页面并重新发送数据会在该网站上创建新订单。
听起来对页面的请求来自POST
。
您应该使用Post/Rerect/Get模式。
在我的搜索表单中将方法请求类型从POST更改为GET,并去掉了确认框。。
将现有代码"top.location.reload()"替换为代码"top.location.href=top.location.href"https://support.mozilla.org/en-US/questions/695164
Firefox发出警告的方式;表示您正在使用post方法重新提交表单。
以下变通方法对我有效。
<form id="yourDummyform" method="post" action="yourPostActionURL?var1=val1&var2=val2">
<!--or some hidden variables here -->
</form>
关于ajax调用或某个事件的成功进行
$("#yourDummyform").submit();
我已经为我的需求解决了这个问题。我在表单提交后添加了以下代码
document.getElementById("frmtbl").submit();
document.getElementById("nxt").click();
document.getElementById("frst").click();
nxt和frst是导航栏上下一页和第一页的链接。其他人可能会得到线索。