仅Javascript读取会话cookie

仅Javascript读取会话cookie,javascript,session,cookies,Javascript,Session,Cookies,我想知道是否存在过滤cookies的现有技巧。 我只需要获取会话cookie并丢弃另一个。 使用Javascript读取Cookie的常用方法是: document.cookie 但是这会打印所有cookie,我的目标是只获取会话cookie。我知道与“普通”cookie不同,会话cookie有一个过期日期 是否有人有代码示例来实现此会话cookies提取 最好的, Alexandre会话cookie是一种普通cookie。它可能(也可能不)有一个到期日,但没有什么可以阻止其他cookie也有

我想知道是否存在过滤cookies的现有技巧。 我只需要获取会话cookie并丢弃另一个。 使用Javascript读取Cookie的常用方法是:

document.cookie
但是这会打印所有cookie,我的目标是只获取会话cookie。我知道与“普通”cookie不同,会话cookie有一个过期日期

是否有人有代码示例来实现此会话cookies提取

最好的, Alexandre

会话cookie是一种普通cookie。它可能(也可能不)有一个到期日,但没有什么可以阻止其他cookie也有一个到期日。识别会话cookie的唯一可靠方法是知道它的名称(当然这取决于网站,但如果这是你的网站,这不是问题)

此外,您无法从Javascript知道cookie的过期日期

现在,
document.cookie
将所有cookie作为分号分隔的字符串提供给您。您只需要在分号上将其分解以检索键值对。下面是一个示例代码,用于查找给定名称的cookie:

var getCookie = function(name) {
    var cookies = document.cookie.split(';');
    for(var i=0 ; i < cookies.length ; ++i) {
        var pair = cookies[i].trim().split('=');
        if(pair[0] == name)
            return pair[1];
    }
    return null;
};
var getCookie=函数(名称){
var cookies=document.cookie.split(“;”);
对于(变量i=0;i

如果您不知道会话cookie的名称,那么您就倒霉了。时期您可能会找到聪明的启发式方法来确定它是哪一个(基于名称和/或值的形式),但没有任何方法可以准确地告诉您所有网站哪个cookie是会话cookie,以及是否存在会话cookie。

了解cookie规范中没有任何内容允许将cookie标记为“会话cookie”。这只是服务器端应用程序使用的约定。你应该在你最喜欢的搜索引擎中找到无数的库/函数/代码片段来按名称阅读Cookie。@JaromandaX这并不能回答我的问题。此链接中没有关于如何获取会话cookies的内容(仅限于此)。)当然,但是你根本不知道cookie@lvaroGonzález我不知道cookie的名称,这就是问题所在,我想获取会话cookie,无论我的JS脚本在哪个域上运行。我知道这可能是一种捕获具有过期日期的cookies的方法,但是如何捕获呢?感谢您的回复,但正如我在这里解释的那样,问题是我需要脚本在每个网站上工作。:)@亚历山大-嗯,你不能。会话cookie名称需要是一个参数。我在结尾添加了一段,基本上说明了Alvaro所说的。@阿尔瓦罗冈萨雷斯谢谢,我认为这是可能的,这就是为什么我问这个问题,因为我没有找到任何解决方案。:)只是为了共享信息:如果您使用此解决方案,请记住禁用HttpOnly for cookie