在我的应用程序中
用户可以像这样
访问社区页面 http://example.com/communities?tag=lovely
然后,如果我尝试返回上一页。我总是收到这条消息
Are you sure you want to send a form again
这仅在从 Safari 访问时显示
我怎样才能避免这种情况。我不希望用户每次回去时都看到它。
路线.rb
resources :communities
避免此问题的一种方法是使 POST 响应返回重定向(HTTP 301 或 303)到新页面,然后浏览器使用 GET 请求该页面。返回应该(尽管并非总是)获取原始表单页面,而不是 POST。
在 Rails 中,这种运行通常如下所示:
- 客户端 GET
/foos/new
- 服务器返回带有
<FORM method='POST' action='/foos'>
的 HTML - 客户端开机自检
/foos
(带参数) - 服务器创建一个 ID 为 123 的新 Foo (英语:ID)
- 服务器返回重定向至
/foos/123
- 客户端 GET
/foos/123
- 服务器返回新创建的 Foo 的 HTML
只需添加
window.location.replace("about:blank");