【问题标题】:Stop resubmitting a page after a post with F5使用 F5 发布帖子后停止重新提交页面
【发布时间】:2009-09-13 18:00:36
【问题描述】:

使用 post 方法提交表单后,f5 将重新提交。 在不重定向页面的情况下最好避免这种情况。我不喜欢这样打扰用户。 Stackoverflow 对 f5 免疫,但我在提出问题后看不到任何重定向。

【问题讨论】:

    标签: php html redirect


    【解决方案1】:

    发布后获取

    • 表单执行 POST 请求
    • 代码处理表单
    • 使用 Location 标头的代码重定向

    结果:刷新结果页面只会再次显示它,因为它是使用 GET 完成的。

    【讨论】:

      【解决方案2】:

      StackOverflow 非常依赖 AJAX,这就是为什么你会看到你所看到的行为。

      如果您不想获取所有 AJAXy,则需要重定向。这种重定向对用户应该是透明的:

      if (! empty($_POST)){
         // Do something with the contents of $_POST
         header('Location: success.php');
      }
      

      现在,如果您的验证失败,您可能会重新加载带有一些错误消息的表单,然后按 F5 将重新发布数据。但如果操作成功,用户将被重定向到您的成功页面,他们可以整天敲 f5 而无需重新发布数据,并且可能会创建重复操作。

      【讨论】:

        【解决方案3】:

        实现此效果的标准方法是使用 HTTP 重定向,这对用户来说并不明显(因此我假设您指的是元刷新延迟重定向)。

        请参阅Post Redirect Get pattern

        【讨论】:

          猜你喜欢
          • 2020-10-23
          • 2013-11-06
          • 1970-01-01
          • 2013-02-11
          • 2020-12-25
          • 2011-09-13
          • 1970-01-01
          相关资源
          最近更新 更多