【发布时间】:2009-09-13 18:00:36
【问题描述】:
使用 post 方法提交表单后,f5 将重新提交。 在不重定向页面的情况下最好避免这种情况。我不喜欢这样打扰用户。 Stackoverflow 对 f5 免疫,但我在提出问题后看不到任何重定向。
【问题讨论】:
使用 post 方法提交表单后,f5 将重新提交。 在不重定向页面的情况下最好避免这种情况。我不喜欢这样打扰用户。 Stackoverflow 对 f5 免疫,但我在提出问题后看不到任何重定向。
【问题讨论】:
发布后获取
结果:刷新结果页面只会再次显示它,因为它是使用 GET 完成的。
【讨论】:
StackOverflow 非常依赖 AJAX,这就是为什么你会看到你所看到的行为。
如果您不想获取所有 AJAXy,则需要重定向。这种重定向对用户应该是透明的:
if (! empty($_POST)){
// Do something with the contents of $_POST
header('Location: success.php');
}
现在,如果您的验证失败,您可能会重新加载带有一些错误消息的表单,然后按 F5 将重新发布数据。但如果操作成功,用户将被重定向到您的成功页面,他们可以整天敲 f5 而无需重新发布数据,并且可能会创建重复操作。
【讨论】:
实现此效果的标准方法是使用 HTTP 重定向,这对用户来说并不明显(因此我假设您指的是元刷新延迟重定向)。
【讨论】: