防止用户返回并查看以前提交的表单Rails



我有一个付款页面,当用户提交时,它捕获付款并定向到一个感谢页面。问题是,当用户单击返回时,浏览器会将他们带回到之前提交的包含支付表单和所有内容的页面。

如何阻止用户访问上一页?

谢谢

@James,把这个方法放到你的应用程序控制器中,并在before_action回调时调用这个方法,就像-

before_action :set_cache_buster

,然后在protected方法中定义动作,如->

protected
def set_cache_buster
  response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
  response.headers["Pragma"] = "no-cache"
  response.headers["Expires"] = "#{1.year.ago}"
end

要做到这一点,我们只需要使用适当的HTTP头禁用浏览器缓存。这就是秘诀:

Cache-Control: no-cache, max-age=0, must-revalidate, no-store

单独来看,这些Cache-Control属性中的每一个似乎都可以防止缓存。实际上,在大多数浏览器中,无缓存和无存储通常是可以互换的。但是,对于后退按钮缓存,Firefox只会在指定no-store时禁用此缓存。为了安全起见并保证跨浏览器兼容性,您应该使用所有四个属性。

有关更多信息,请参阅链接- Pragma和Cache-Control头之间的区别?

特定页面:

添加回调到特定的页面,只有一个选项,如:

before_action :set_cache_buster, only: [:your_action_name]

相关内容

  • 没有找到相关文章

最新更新