본문 바로가기
Error

[Error] getCookie is not defined 해결 방법

by GoodDayDeveloper 2022. 10. 4.
반응형

 

스크립트 에러 중,  getCookie is not defined가 발생하였습니다.

자바스크립트 에러 해결하기 생각보다 귀찮습니다...ㅜㅜ

getCookie 함수가 분명 있는데 없다고 하니까요.

 

모르면 몇날몇일 해맬 수 있지만 간단히 해결하는 방법을 알려드리겠습니다.

 

 

 

 

 

 


 

 

 

 

원인

 

 

 

 

저의 자바스크립트 상의 getCookie코드입니다.

자세히 보시면 return 값에 unescape를 사용하고 있는 부분이 있습니다.

이 unescape가 문제가 되어 getCookie를 읽지 못하는 현상입니다.

 

 

 

 

unescape는 escape로 이스케이핑 된 문자열을 정상적인 문자열로 되돌려주는 역활을 합니다.

MDN Web Docs에서 보시면 unescape는 웹 표준에서 이미 제거되어 권장하고 있지 않습니다.

이를 사용하기 위해서는 대체 코드를 사용해야합니다.

 

 

 

 

 

반응형

 

 

 

 

해결방법

 

 

 

 

 

문구에서 나와있듯이  unescape 대신 웹 표준에서 권장하는 decodeURI를 사용해야합니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function getCookie(Name) {
    var search = Name + "=";
    if (document.cookie.length > 0) { // 쿠키가 설정되어 있다면 
 
        offset = document.cookie.indexOf(search);
 
        if (offset != -1) { // 쿠키가 존재하면 
 
            offset += search.length;
            end = document.cookie.indexOf(";", offset);
 
            // 쿠키 값의 마지막 위치 인덱스 번호 설정 
            if (end == -1)
                end = document.cookie.length;
 
            //return unescape(document.cookie.substring(offset, end));
            return decodeURI(document.cookie.substring(offset, end));
        }
    }
    return "";
}
cs

 

 

return 값을 decodeURI로 사용하면 에러를 해결할 수가 있습니다!

 

 

 

 

반응형

댓글