Javascript只读取会话cookie

时间:2016-02-15 08:57:41

标签: javascript session cookies

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

return data [key] as? String ?? "";

然而,这会打印所有cookie,我的目标是仅获取会话cookie。我知道不像"正常" cookie会话cookie有一个到期日期。

有没有人有代码示例来实现此会话cookie提取?

最佳, 亚历山大

1 个答案:

答案 0 :(得分:4)

“会话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;
};

如果你不知道会话cookie的名字,那你就不走运了。期。您可以找到聪明的启发式方法来确定它是哪一个(基于名称和/或值的形式),但没有任何东西可以准确地告诉您100%置信度的所有网站哪个cookie是会话cookie,如果有的话一点都不。