[javascript] 도메인에서 JavaScript 쿠키를 만들고 하위 도메인에서 읽기

아래는 사용자의 컴퓨터에 12 개월 동안 기록되는 JavaScript 쿠키입니다.

과 같은 기본 도메인에 쿠키를 설정 한 후 example.com사용자가과 같은 하위 도메인을 방문하는 경우 test.example.com“테스트”하위 도메인에서 사용자의 활동을 계속 식별해야합니다.

그러나 현재 코드를 사용하면을 (를) 떠나고 www.example.com방문 하자마자 test.example.com더 이상 “HelloWorld”로 플래그가 지정되지 않습니다.

쿠키를 하위 도메인에서 읽을 수 있도록 누구든지 내 코드를 도와 줄 수 있습니까?

<script type="text/javascript">
  var cookieName = 'HelloWorld';
  var cookieValue = 'HelloWorld';
  var myDate = new Date();
  myDate.setMonth(myDate.getMonth() + 12);
  document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate;
</script>



답변

그냥 설정 domainpath같은 쿠키에 속성 :

<script type="text/javascript">
var cookieName = 'HelloWorld';
var cookieValue = 'HelloWorld';
var myDate = new Date();
myDate.setMonth(myDate.getMonth() + 12);
document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate
                  + ";domain=.example.com;path=/";
</script>


답변

원하는 :

document.cookie = cookieName +"=" + cookieValue + ";domain=.example.com;path=/;expires=" + myDate;

RFC 2109에 따라 모든 하위 도메인에서 쿠키를 사용할 수 있도록하려면 .도메인 앞에를 넣어야 합니다.

path = /를 설정하면 지정된 전체 도메인 (일명 .example.com) 내에서 쿠키를 사용할 수 있습니다 .


답변

다음은 작동하는 예입니다.

document.cookie = "testCookie=cookieval; domain=." +
location.hostname.split('.').reverse()[1] + "." +
location.hostname.split('.').reverse()[0] + "; path=/"

이것은 위치 개체에서 루트 도메인을 가져와 쿠키를 설정하는 일반적인 솔루션입니다. 그 반대는 하위 도메인이 몇 개 있는지 모르기 때문입니다.


답변

MDN JavaScript 쿠키 프레임 워크를 사용하여 다음을 수행 할 수도 있습니다 .

docCookies.setItem('HelloWorld', 'HelloWorld', myDate, '/', 'example.com');


답변