单击浏览器返回时会话消息重复

Posted

技术标签:

【中文标题】单击浏览器返回时会话消息重复【英文标题】:Session message repeat when click browser back 【发布时间】:2021-09-12 06:24:14 【问题描述】:

我想在登录后显示会话消息。我用这个来做

@if ($message = Session::get('success'))
   <script>
       toastr.success(' $message ');
   </script>
@endif

但是当浏览另一个网页并再次单击浏览器后退按钮时。它显示以前的会话消息。如何删除浏览器后退按钮上的会话消息。

我试过了

 Session::forget('success') 

它总是忘记会话消息。甚至不显示第一次会话。

【问题讨论】:

【参考方案1】:

因为缓存。

您可以在发送响应之前使用标头

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

有一个答案可以帮助你 prevent-browsers-back-button-login-after-logout-in-laravel

【讨论】:

问题是我正在使用缓存来保存一些数据并使用它

以上是关于单击浏览器返回时会话消息重复的主要内容,如果未能解决你的问题,请参考以下文章

如果会话无效,请禁用浏览器后退按钮 [重复]

当用户关闭浏览器而不单击注销时销毁或取消设置会话[重复]

使用ajax在浏览器中单击时破坏php会话

单击“转到上一页”链接返回上一个窗口[重复]

单击注销时如何从所有活动会话中注销?

servlet会话,注销后,按下浏览器的后退按钮时,再次显示安全页面[重复]