我想创建一个按钮来重新加载页面而不会丢失$_POST
数据和$_SESSION
。
在网络上,我找到了这段代码:
onclick="document.location.reload();"
这是我按钮的代码:
<a class="button" href="" style="font-size: 0.7em; padding: 5px 10px;" onclick="document.location.reload();">Recharger la page</a>
但是,当我点击该按钮时,我会丢失$_POST
个数据和$_SESSION
。
如果我尝试使用键盘命令 Ctrl + R (Chrome)或 F5 (Firefox,IE9),浏览器会显示警告,通知我“再次尝试提交表格。如果我接受,它就有效。
如何使用JavaScript命令重现这种浏览器刷新?或者我的按钮代码错了?
非常感谢你的帮助。
答案 0 :(得分:9)
尝试使用
location.reload(true);
这将执行“硬”刷新,不仅重建DOM,还重新从服务器检索任何资源。
You can read more at the Mozilla Developer wiki.
显然,location.reload()
相当于脚本中的F5
,而Ctrl+F5
/ Ctrl+R
可以使用location.reload(true)
进行模拟。
此外,正如ThiefMaster所提到的,您在;return false
声明的末尾遗失了onclick
,或者您应该将href
设置为javascript:void 0
* 阻止浏览器关注链接。
*或任何其他返回undefined
答案 1 :(得分:2)
只要您位于发布到的同一位置,就会发生这种情况。但是,在POST请求之后重定向是很常见的,以避免您正在尝试执行的操作。
您的代码无法正常工作的原因是href=""
将导致对当前网址的GET请求。使用href="#"
来阻止它加载&#34; new&#34;页面或在return false;
代码的末尾添加onclick="..."
。
答案 2 :(得分:0)
Ctrl + R
刷新页面,清除缓存。我想你正在使用Internet Explorer?当您点击Ctrl + F5
时,其他一些浏览器的行为与此类似,但Ctrl + R
来源:
https://superuser.com/questions/205279/ctrlf5-vs-ctrlr-on-browsers
Browser issue in Ctrl-R