点击浏览器的返回按钮时如何销毁会话(session)

3
我正在使用laravel中的session->flash()方法来显示成功消息。但是当用户点击后退按钮时,消息会再次出现。如何解决这个问题。 我用于显示消息的代码是 -
@if(Session::get('success') )
    <script>
        swal({
            text: "{{Session::get('success')}}",
            button: localMsg.ok,

        }).then((isConfirm) => {
        });
    </script>
    @elseif(Session::get('error'))
    <script>
        swal({
            text: "{{Session::get('error')}}",
            button: localMsg.ok,

        }).then((isConfirm) => {
        });

    </script>
@endif
2个回答

2
您应该销毁成功和错误消息的会话值。
@if(Session::get('success') )
    <script>
        swal({
            text: "{{Session::get('success')}}",
            button: localMsg.ok,

        }).then((isConfirm) => {
        });
     {{ Session::forget('success'); }} //Add this line to destroy value for 'success'
    </script>
    @elseif(Session::get('error'))
    <script>
        swal({
            text: "{{Session::get('error')}}",
            button: localMsg.ok,

        }).then((isConfirm) => {
        });
     {{ Session::forget('error'); }} //Add this line to destroy value for 'error'
    </script>
@endif

它正在删除会话。甚至不显示会话消息。 - Supun Madhushanka

1
通过这种方式,您可以获取浏览器的返回按钮事件:
     if (window.history && window.history.pushState) {

        window.history.pushState('forward', null, './#forward');

        $(window).on('popstate', function() {
          alert('Back button was pressed.'); //here you know that the back button is pressed
        //write code to hide your success message when your clicks on browser back button

        });

      }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接