자바 스크립트를 사용한 세션 전용 쿠키
Javascript로 세션 전용 쿠키를 만들 수 있는지 궁금합니다. 브라우저가 닫히면 쿠키를 제거해야합니다.
웹 사이트가 HTML 전용이므로 서버에서 아무것도 사용할 수 없으므로 서버 측 스크립트가 사용되지 않습니다.
나는 이것에 대해 http://blog.lysender.com/2011/08/setting-session-only-cookie-via-javascript/를 읽었 지만 이것에 대한 더 많은 정보를 찾을 수 없습니다 ... 그래서 나는 이 방법이 신뢰할 수 있는지 궁금합니다.
네, 맞습니다.
expires
파트를 넣지 않으면 JavaScript로 생성 되든 서버에 생성 되든 관계없이 세션 쿠키가 생성됩니다.
참조 https://stackoverflow.com/a/532660/1901857를
더 간단한 해결책은를 사용하는 것 sessionStorage
입니다.이 경우 :
var myVariable = "Hello World";
sessionStorage['myvariable'] = myVariable;
var readValue = sessionStorage['myvariable'];
console.log(readValue);
그러나 sessionStorage
모든 것을 문자열로 저장하므로 배열 / 객체로 작업 할 때 JSON을 사용하여 저장할 수 있습니다.
var myVariable = {a:[1,2,3,4], b:"some text"};
sessionStorage['myvariable'] = JSON.stringify(myVariable);
var readValue = JSON.parse(sessionStorage['myvariable']);
페이지 세션은 브라우저가 열려 있고 페이지를 다시로드하고 복원해도 지속되는 동안 지속됩니다. 새 탭이나 창에서 페이지를 열면 새 세션이 시작됩니다.
따라서 페이지 / 탭을 닫으면 데이터가 손실됩니다.
Java 스크립트로 세션 전용 쿠키를 생성하려면 다음을 사용할 수 있습니다. 이것은 나를 위해 작동합니다.
document.cookie = "cookiename=value; expires=0; path=/";
다음과 같이 쿠키 값을 얻습니다.
//get cookie
var cookiename = getCookie("cookiename");
if (cookiename == "value") {
//write your script
}
//function getCookie
function getCookie(cname) {
var name = cname + "=";
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);
if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
}
return "";
}
IE를 지원하려면 완전히 "만료"상태로두고 이것을 사용할 수 있습니다.
document.cookie = "mtracker=somevalue; path=/";
참고 URL : https://stackoverflow.com/questions/14196671/session-only-cookies-with-javascript
'developer tip' 카테고리의 다른 글
Android x86 화면 해상도 전환 (0) | 2020.11.13 |
---|---|
자바 스크립트에서 문자열의 줄 수를 계산하는 방법 (0) | 2020.11.13 |
INNER JOIN과 LEFT SEMI JOIN의 차이점 (0) | 2020.11.13 |
nginx / 승객의 "신청서에서받은 불완전한 응답" (0) | 2020.11.13 |
겉보기에 간단하고 명백한 사례에서 C #이 유형을 추론 할 수없는 이유 (0) | 2020.11.12 |