Menztrual Menztrual - 1 month ago 21
Javascript Question

Javascript document.cookie always empty string

I have this real strange problem with client side javascript setting cookies. I'm developing a little 1 page demo at the moment to use cookies to store some 'preferences'. Please note that I can't use a server side language for this demo or any 3rd party jQuery plugins.

So I've written a javascript object to set a cookie:

var cookie = {
set: function (name,value,exdays) {

var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var value = escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=name + "=" + value;
console.log(document.cookie);
}
}

cookie.set('foo','bar',2);
console.log(document.cookie);


It just returns an empty string. I've gone into Chrome console to see if I can do it via directly modifying
document.cookie


> document.cookie = "foo=bar";
"foo=bar"
> document.cookie
""


How do you set a cookie via client side javascript?

Edit: I am not in incognito mode and cookies are enabled.

Answer

You can't set cookies by the look of things if its not running in a web server.

file:///C:/Users/me/Desktop/demo/demo.html

however:

http://localhost/demo/demo.html works.