使用javascript从cookie获取会话ID

时间:2011-06-02 12:10:10

标签: javascript cookies google-chrome google-chrome-extension session-cookies

我正在尝试了解Cookie及其存储的内容。由于我是Google Chrome的活跃用户,因此我只考虑使用Javascript从Cookie访问网页的会话ID。我已使用chrome.cookies.getAll()获取了浏览器中存储的所有Cookie列表。

但是我无法理解如何从cookie访问会话ID,因为它没有关键字?

如何从Cookie中获取会话ID?

获取cookie的代码如下:

<html><head>
<script>
chrome.browserAction.onClicked.addListener(getCookies);

var cacheMap = {};
var cookie_nameArr = [];
var cookie_valArr = [];


    function getCookies(){
        chrome.cookies.getAll({}, function(cookies){

            for(var b in cookies){                      
            var cookieVal = cookies[b].value;
            var cookieName = cookies[b].domain;
                    cookie_nameArr.push(cookieName);
                    cookie_valArr.push(cookieVal);              
                if(!cacheMap[cookieName])
                {
                    cacheMap[cookieName] = 1;
                }
                else
                    cacheMap[cookieName]++;
    }//alert(cookie_nameArr.length + "," + cookie_valArr.length);
        for(var i=0;i<3;i++)
    {   
        alert(cookie_nameArr[i] + ", " + cookie_valArr[i]);

    }

});
}

</script></head>
</body></html>

1 个答案:

答案 0 :(得分:1)

首先,您需要弄清楚您在寻找什么。在黑暗的房间里寻找一只黑猫很难,特别是如果它不存在的话。

在您感兴趣的页面上打开Chrome开发工具,然后查看“资源”标签。你在“Cookies”下看到了你的cookie吗?如果是,那么您将能够使用您的方法阅读它。如果没有,那么检查你的页面网址 - 也许它作为url参数传递?如果没有,那么session可能只用于ajax请求?也许它根本没用过?

您需要先手动找到它,然后以编程方式执行。会话有各种形状和大小,每个站点都有自己的实现方式。您无法构建读取所有网站会话的扩展程序。

您的方法几乎是可行的方法,只需使用控制台而不是警报来检查对象的简单方法:

    chrome.cookies.getAll({domain: "stackoverflow.com"}, function(cookies){
        console.log(cookies);
    });

点击扩展程序标签上的background.html链接,然后查看控制台。