【发布时间】:2010-11-25 07:46:44
【问题描述】:
很多时候我们使用会话变量在页面中存储数据。当用户从一个页面跳转到另一个页面时,我需要退出 JavaScript 来终止会话。可能吗。如果是,请指导我。
提前致谢
【问题讨论】:
-
您想终止会话,还是删除会话变量/键?
-
我想他想用这个变量来描述他的意思。他想彻底杀死它..
标签: javascript
很多时候我们使用会话变量在页面中存储数据。当用户从一个页面跳转到另一个页面时,我需要退出 JavaScript 来终止会话。可能吗。如果是,请指导我。
提前致谢
【问题讨论】:
标签: javascript
您需要告诉服务器终止会话变量。
做到这一点的唯一方法是从 javascript 中使用 Ajax 来调用一些自定义页面,例如,将要删除的会话密钥作为变量。
【讨论】:
你必须触发一个 AJAX 事件,例如:
function kill_session() {
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","session_destroyer.php",false);
xmlhttp.send();
document.getElementById("id_of_a_hidden_div").innerHTML=xmlhttp.responseText;
}
你的 session_destroyer.php 可能看起来像:
<?php
session_start();
session_destroy();
?>
【讨论】:
删除会话 cookie。对于 PHP,它被称为 PHPSESSID。如果您这样做,浏览器将丢失会话 ID,并且该客户端将无法再访问实际的会话数据。
请参阅此处了解如何处理来自 JavaScript 的 cookie:http://www.quirksmode.org/js/cookies.html
【讨论】:
Session 对象是服务器对象,你不能直接从 javascript 访问它。 您应该创建对服务器的 ajax 调用以终止会话。 您可以使用 jquery 来做到这一点,非常简单,请查看此链接。 http://api.jquery.com/jQuery.ajax/
【讨论】: