当你刚刚发送表单时,刷新一下,如果你还没有使用发布/重定向/获取模式,Firefox 会询问您是否要重新发送表单数据。如果您单击“重新发送”,页面通常会重新加载,表单处理代码会再次执行其工作。
在生产中,我通常会重定向,这样就不会发生这种情况。但在开发过程中,能够刷新并查看我的调试转储,其中包含与我的代码更改相同的发布数据,而不必再次填写表单或使用诸如邮差die()
。只需在重定向之前填写表格,然后进行测试。
在过去的几个月里,似乎有些事情发生了变化,Firefox 现在只会假装在刷新时重新发送数据。它仍然会询问我,但即使下面的代码是最先执行的,$_POST
也是一个空数组。
<?php
echo '<pre>';
var_dump($_POST);
echo '</pre>';
die();
?>
同时,在 Chrome 上执行相同步骤做像以前一样将我的 $_POST 数组还给我。
我离开工作岗位已经有几个月了,所以我不确定发生了什么变化,但由于在安全模式下使用 Firefox(没有附加组件)会产生相同的结果,所以我几乎可以肯定问题就在那里。我在 Mac 上使用 Firefox 75。
是否有隐藏的偏好设置可以改变刷新时重新发送 POST 数据的行为?我可以修复这个问题吗?
答案1
尝试about:config
并设置dom.confirm_repost.testing.always_accept
=true
在 Firefox 84 中帮助了我