如何避免“您确定要再次发送表单吗?”?

时间:2013-02-01 19:10:14

标签: ruby-on-rails ruby-on-rails-3

在我的应用中

用户可以像这样访问社区页面 http://example.com/communities?tag=lovely

然后如果我尝试回到上一页。我总是收到这条消息

Are you sure you want to send a form again

仅在从Safari

访问时出现

我该如何避免这种情况。我不想让用户每次回来都看到它。

的routes.rb

resources :communities

2 个答案:

答案 0 :(得分:2)

避免此问题的一种方法是让您的POST响应返回redirect (HTTP 301 or 303)到新页面,然后浏览器通过GET请求。回去应该(虽然并不总是)获取原始表单页面,而不是POST。

在Rails中,这种绕行通常看起来像这样:

  1. 客户GET /foos/new
  2. 服务器返回带有<FORM method='POST' action='/foos'>
  3. 的HTML
  4. 客户端POST /foos(使用参数)
  5. 服务器创建一个ID为123的新Foo
  6. 服务器返回重定向到/foos/123
  7. 客户GET /foos/123
  8. 服务器返回新创建的Foo的HTML

答案 1 :(得分:-1)

只需添加

window.location.replace("about:blank");