본문 바로가기
Error

[Error] getCookie is not defined 해결 방법

by Life-Journey 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로 사용하면 에러를 해결할 수가 있습니다!

 

 

 

 

반응형

댓글