是否可以使用javascript读取浏览器会话ID?
答案 0 :(得分:31)
是。由于会话ID是通过URL(document.location.href
)或通过cookie(document.cookie
)传输的,因此您可以检查是否存在会话ID。
答案 1 :(得分:7)
以下内容可用于检索JSESSIONID:
function getJSessionId(){
var jsId = document.cookie.match(/JSESSIONID=[^;]+/);
if(jsId != null) {
if (jsId instanceof Array)
jsId = jsId[0].substring(11);
else
jsId = jsId.substring(11);
}
return jsId;
}
答案 2 :(得分:5)
您可以通过在document.cookie上发出以下正则表达式来接收会话ID:
alert(document.cookie.match(/PHPSESSID=[^;]+/));
在我的示例中,存储会话ID的cookie名称是PHPSESSID(php服务器),只需将PHPSESSID替换为包含会话ID的cookie名称。 (可由Web服务器配置)
答案 3 :(得分:4)
据我所知,浏览器会话没有id。
如果您指的是服务器会话,通常存储在cookie中。例如,ASP.NET存储的cookie名为“ASP.NET_SessionId”。
答案 4 :(得分:2)
对于PHP的PHPSESSID变量,此函数有效:
function getPHPSessId() {
var phpSessionId = document.cookie.match(/PHPSESSID=[A-Za-z0-9]+\;/i);
if(phpSessionId == null)
return '';
if(typeof(phpSessionId) == 'undefined')
return '';
if(phpSessionId.length <= 0)
return '';
phpSessionId = phpSessionId[0];
var end = phpSessionId.lastIndexOf(';');
if(end == -1) end = phpSessionId.length;
return phpSessionId.substring(10, end);
}
答案 5 :(得分:1)
这是一个简短而又甜蜜的JavaScript函数,用于获取会话ID:
function session_id() {
return /SESS\w*ID=([^;]+)/i.test(document.cookie) ? RegExp.$1 : false;
}
或者如果您更喜欢变量,这里只是一个简单的单行:
var session_id = /SESS\w*ID=([^;]+)/i.test(document.cookie) ? RegExp.$1 : false;
应该匹配PHP,JSP,.NET的会话ID cookie,我想其他各种服务器端处理器也是如此。
答案 6 :(得分:-1)
您可以通过javascript内的ajax ping服务器。 php文件可能类似于:
<?php
session_start();
$id = session_id();
echo $id;
?>
这将返回当前的会话ID。这是你在寻找什么。