当用户在没有正确注销的情况下关闭选项卡或窗口时,我希望销毁会话。我认为这可能奏效:
javascript:
$(window).on("beforeunload", function(){
alert("Beforeunload called");
$(document).load("vve_inc/php/vve_logout.php");
});
php:
<?php
session_start();
session_destroy();
?>
警报工作正常,但php脚本不正常。有人知道吗?
警报停止执行代码。
在卸载时执行AJAX请求是不稳定的,并且不会总是执行。
如果你只是有一个注销按钮或会话超时会更好。
qwuertynl是正确的,但是您可以在PHP中使用ignore_user_abort();
,AJAX请求是否完成也无关紧要。我过去曾成功地大规模使用过它。
http://php.net/manual/en/function.ignore-user-abort.php
无论请求是否中止,调用该函数都会使PHP脚本运行完成。