Has*_*thi 5 javascript cookies
我使用Newcookie()创建了一个cookie,我可以通过浏览器访问它,如下所示.现在我需要阅读cookie

function getCookieValue(cookieName) {
console.log("=====getCookieValue=======");
var name = cookieName + "=";
var cookies = document.cookie.split(';');
console.log("=====ALL cookies======="+cookies);
if (!cookies) {
return null;
}
console.log("=====cookies.length======="+cookies.length);
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
console.log("=====cookies======="+cookies[0]);
if (cookie.indexOf(name) == 0) {
return cookie.substring(name.length, cookie.length);
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
但通过使用该方法,我无法读取cookie.请就此向我提出建议.谢谢
你的功能几乎是完美的。你只需要改变这一行:
\n\ndocument.cookie.split(';');\nRun Code Online (Sandbox Code Playgroud)\n\n您可以通过运行上述语句在控制台中检查结果: you\xe2\x80\x99 将获得一个包含所有 cookie 的数组,但每个 cookie 前面都有一个空格。这\xe2\x80\x99就是为什么要进行比较
\n\nif (cookie.indexOf(name) == 0)\nRun Code Online (Sandbox Code Playgroud)\n\n\xe2\x80\x99t 不会像预期那样工作,因为预期的子字符串 \xe2\x80\x99t 不会从位置 0 开始,而是从 1 开始。
\n\n因此,您\xe2\x80\x99 将希望不是用单个分号而是用分号和空格来分割 cookie 列表。I\xe2\x80\x99m 不确定所有的浏览器,所以我认为最安全的方法是使用 RegExp 检查可选的空格:
\n\ndocument.cookie.split(/;\\s?/);\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |