我正在尝试了解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>
答案 0 :(得分:1)
首先,您需要弄清楚您在寻找什么。在黑暗的房间里寻找一只黑猫很难,特别是如果它不存在的话。
在您感兴趣的页面上打开Chrome开发工具,然后查看“资源”标签。你在“Cookies”下看到了你的cookie吗?如果是,那么您将能够使用您的方法阅读它。如果没有,那么检查你的页面网址 - 也许它作为url参数传递?如果没有,那么session可能只用于ajax请求?也许它根本没用过?
您需要先手动找到它,然后以编程方式执行。会话有各种形状和大小,每个站点都有自己的实现方式。您无法构建读取所有网站会话的扩展程序。
您的方法几乎是可行的方法,只需使用控制台而不是警报来检查对象的简单方法:
chrome.cookies.getAll({domain: "stackoverflow.com"}, function(cookies){
console.log(cookies);
});
点击扩展程序标签上的background.html链接,然后查看控制台。