-1

我试图强制用户在关闭浏览器之前从系统注销。下面是我只能想出的代码。

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    <script type="text/javascript">

        $(window).bind('beforeunload', function () {
            return 'Please LogOut';
        });

    </script>

我想做类似下面的事情。显示一个确认框,如果用户按 OK,则进行 ajax 调用。

我尝试了下面的代码,但即使是确认框也没有出现。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    <script type="text/javascript">

        $(window).bind('beforeunload', function () {
            var x;
            var r = confirm("Please LogOut");
            if (r == true) {
                x = "LogOut";
                var url = "/User/logOut/";
                  $.ajax({
                    url: url,
                    data: { UserID: 1},
                    cache: false,
                    type: "POST",
                    success: function (data) {

                    },
                    error: function (reponse) {
                        alert("error : " + reponse);
                    }
                });
            }
            else {
                x = "Stay On Page!";
            }

        });

    </script>
4

1 回答 1

1

我们尝试了类似的方法,但您无法检测到用户何时如此轻松地关闭浏览器。

最简单的方法是使用会话作为用户访问。这意味着在每次调用时,您的客户端应该发送一些令牌,服务器端应该检查它。此令牌保存在客户端的 cookie/存储(会话存储,但它仅作为会话在选项卡上工作)并且一旦用户关闭窗口/选项卡就会过期。

当然,您的服务器端应该支持会话。对于发送令牌,我建议使用授权标头,因为它可以在大多数开发平台上使用,如果您计划将来某个时候从 js 扩展到例如 android 平台。

于 2013-07-01T14:46:58.177 回答