每当我按下浏览器后退按钮时,即使在成功注销后,它也会带我到应用程序的主页,没有任何数据。这只显示页面标题部分,按任何菜单选项会让我返回登录页面。 我正在使用 Grails-2.3.6 和 JDK-6。 那么任何人都可以告诉我可能是什么问题,因为我是 grails 的新手?
最佳答案
是web开发中的一个常见问题,页面是缓存在浏览器中的,所以当你按后退按钮时,浏览器会显示他缓存中的内容。为了解决这个问题,您需要在页面中设置过期 header 。在 grails 中,最简单的方法是使用过滤器:
使用以下内容创建文件grails-app/conf/RequestFilters.groovy
:
class RequestFilters {
def filters = {
requestHeadersFilter(controller: '*', action: '*') {
after = {
response.setHeader("Pragma", "no-cache")
response.setDateHeader("Expires", 1L)
response.setHeader("Cache-Control", "no-cache")
response.addHeader("Cache-Control", "no-store")
}
}
}
}
对于 safari,您将需要另一个小技巧,将 onunload=""
添加到布局主体( View /布局)
关于grails - 即使成功注销后,按浏览器后退按钮仍可重新登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27439498/