尝试为我正在撰写的网站测试Cookie的存储空间。每当我尝试读取cookie以检查其存在时,控制台都不会给我任何回报。
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
createCookie("name","value",7);
if (readCookie("name")){
console.log("it works");
};
答案 0 :(得分:1)
如果您的代码是从file://
而非http://
协议提供的,则可能会发生这种情况。
如果没有域和http通信,Opera(和Chrome)不会保存cookie。
了解以上内容后,您的选择是:
--enable-file-cookies
标志运行Opera(这适用于Chrome,但不确定Opera)通过http服务器提供文件。如果您使用MAC,它就像:
一样简单$ cd / project_folder /
$ python -m SimpleHTTPServer 8000
其中/project_folder/
包含您的html文件。
然后,您可以使用任何浏览器访问http://localhost:8000/your_html_file.html
来源:https://bugs.chromium.org/p/chromium/issues/detail?id=535