Rob*_*bbo 3 html ruby-on-rails-3
我有一个付款页面,当用户提交时,它会捕获付款并指向感谢页面。问题在于,当用户点击返回时,浏览器会将他们带回之前提交的带有付款表单和所有内容的页面。
如何防止用户访问上一页?
谢谢
@James,将此方法放在您的应用程序控制器中,并在 before_action 回调上调用此方法,例如 -
before_action :set_cache_buster
Run Code Online (Sandbox Code Playgroud)
然后在受保护的方法中定义操作,例如 ->
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
Run Code Online (Sandbox Code Playgroud)
为此,我们只需要使用适当的 HTTP 标头禁用浏览器缓存。这是秘密:
缓存控制:无缓存,最大年龄=0,必须重新验证,无存储
单独来看,这些 Cache-Control 属性中的每一个似乎都会阻止缓存。实际上,在大多数浏览器中,no-cache 和 no-store 通常可以互换。但是对于后退按钮缓存,Firefox 只会在指定 no-store 时禁用此缓存。为了安全起见并保证跨浏览器兼容性,您应该使用所有四个属性。
有关更多信息,请参阅链接 - Pragma 和 Cache-Control 标头之间的区别?
对于特定页面:
使用唯一的选项在特定页面上添加该回调,例如:
before_action :set_cache_buster, only: [:your_action_name]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1612 次 |
| 最近记录: |