轨道上的红宝石 - 如何避免"Are you sure you want to send a form again?"?



在我的应用程序中

用户可以像这样
访问社区页面 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 中,这种运行通常如下所示:

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

只需添加

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

相关内容

  • 没有找到相关文章