我想要在用户关闭标签页或窗口时销毁会话而不正确注销。我认为这可能有用:
javascript:
$(window).on("beforeunload", function(){
alert("Beforeunload called");
$(document).load("vve_inc/php/vve_logout.php");
});
php:
<?php
session_start();
session_destroy();
?>
警报工作正常,但php脚本没有。有人有任何想法吗?
答案 0 :(得分:1)
警报会停止执行代码。
在卸载时执行AJAX请求是不稳定的,并且不会一直执行。
如果您只有一个注销按钮或会话超时,那会更好。
答案 1 :(得分:0)
qwuertynl是正确的,但你可以在PHP中使用ignore_user_abort();
,如果AJAX请求完成则无关紧要。我过去已经成功地大规模使用了它。
http://php.net/manual/en/function.ignore-user-abort.php
调用该函数将使您的PHP脚本运行完成,无论请求是否中止。