如果选择浏览器后退按钮,如何避免重新提交表单?

时间:2012-07-18 18:21:56

标签: forms symfony

让我们考虑如下情况:

  1. Symfony2为实体提供删除表单
  2. 用户选择删除按钮
  3. Symfony2控制器将删除实体并将用户重定向到确认页面
  4. 如果用户选择浏览器后退按钮,他/她将再次看到记录和删除表单
  5. 选择“删除”按钮会抛出异常,因为它已被删除
  6. 避免后退按钮和重新提交的最佳方法是什么?

    此问题的控制器与here相同。

1 个答案:

答案 0 :(得分:4)

如果您以RESTful方式执行此操作,则应使用POST方法或PUTPOSTDELETE完成所有数据更改请求。在此类请求之后,重定向到GET页面。如果用户按下后退按钮,浏览器将显示一条警告,指出应该再次发送请求,并且可能导致不需要的结果。如果用户坚持要重新发送请求,那么她应该会收到404错误页面,因为她正在尝试使用不再存在的内容。