2

在我的应用程序中

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

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

Are you sure you want to send a form again

这仅在从 Safari 访问时出现

我怎样才能避免这种情况。我不希望用户每次返回时都看到它。

路线.rb

resources :communities
4

2 回答 2

2

避免此问题的一种方法是使您的 POST 响应返回重定向(HTTP 301 或 303)到新页面,然后浏览器使用 GET 请求该新页面。返回应该(尽管并不总是)获取原始表单页面,而不是 POST。

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

  1. 客户端 GET/foos/new
  2. 服务器返回 HTML<FORM method='POST' action='/foos'>
  3. 客户端 POST /foos(带参数)
  4. 服务器创建一个 ID 为 123 的新 Foo
  5. 服务器返回重定向到/foos/123
  6. 客户端 GET/foos/123
  7. 服务器为新创建的 Foo 返回 HTML
于 2013-02-01T19:21:52.153 回答
-1

只需添加

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

于 2013-11-01T08:38:06.897 回答