Hrishikesh Kokate
Hrishikesh Kokate

Reputation: 1225

JavaScript cookies not working on sub-domains

I have a cookie authorization banner, with a button labeled 'Got it!' that dismisses it. I do that by setting a cookie.

To set a cookie, I have this in my <head>:

<script>

    function setCookie(cname, cvalue, exdays)
        {
            var d = new Date();
            d.setTime(d.getTime() + (exdays*24*60*60*1000));
            var expires = "expires="+ d.toUTCString();
            var domain = ".brokenhearts.ml";
            var security = "secure";
            var location = "/";
            document.cookie = cname + "=" + cvalue + ";" + expires + ";" + location + ";" + domain + ";" + security;
        }

</script>

and I've set this to be executed when the button is clicked:

var privacyValue = "yes";
setCookie("privacy", privacyValue, 365);

The problem is, when I check for the cookie in Chrome, it shows me something like this:

Cookies

As you can see, the cookie is getting set only for www.brokenhearts.ml and not for its sub-domains. I want the cookie to be set for all sub-domains.

I tried setting the cookie with the domain as "brokenhearts.ml" and it still gets set only for www.brokenhearts.ml.

Upvotes: 3

Views: 2718

Answers (1)

cssyphus
cssyphus

Reputation: 40038

When setting up the cookie, your domain must be in format of .domain.com – dot and root domain and path=/, always.

If you don't set path=/, auto path will be saved as from where the cookies is being saved - hence it wont be accessible across any subdomain.

//variables
var LastReportGenerated="Jul 11 2013",
baseDomain = '.cssjunction.com',
expireAfter = new Date();

//setting up  cookie expire date after a week
expireAfter.setDate(expireAfter.getDate() + 7);

//now setup cookie
document.cookie="Report={'ReportName':'MainReport', 'lastGenerated':" + LastReportGenerated + "}; domain=" + baseDomain + "; expires=" + expireAfter + "; path=/";

Source:

How to set cookies to share across all subdomains using JavaScript

Upvotes: 2

Related Questions