2012-05-21 3 views
1

쿠키를 Javascript 및 Jquery로 설정하고 가져 오려고 시도하지만이 두 가지 방법 모두에 대해 null을 반환합니다. 내 코드가 올바르게 보이지만 왜 그것이 나를 위해 작동하지 않는지 모르겠다.GetCookie가 NULL을 반환합니다.

cook.js

function setCookie(name,value,days) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     var expires = "; expires="+date.toGMTString(); 
    } 
    else 
     var expires = ""; 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

function getCookie(name) { 
    var nameEQ = name + "="; 
    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,c.length); 
      if (c.indexOf(nameEQ) == 0) 
       return c.substring(nameEQ.length,c.length); 
    } 
    return null; 
} 

function deleteCookie(name) { 
    setCookie(name,"",-1); 
} 

내 HTML 페이지 :

fin.html :

<!DOCTYPE html> 
<html> 
    <head> 
     <title>My Page</title> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <script type="text/javascript" src="jquery-1.7.1.min.js"></script> 
     <script type="text/javascript" src="jquery.cookie.js"></script> 
     <script type="text/javascript" src="cook.js"></script> 
    </head> 
    <body> 
     <a id="setcookie" href="fin2.html">SET COOKIE</a> 
     <script> 
      $("#setcookie").click(function() { 
       // Using javascript function 
       setCookie("mycookie", "itsvalue", 1) ; 

       // Using jQuery plugin 
       $.cookie('myCookie2': "myValue"); 
      }); 
     </script> 
    </body> 
</html> 

fin2.html

<!DOCTYPE html> 
<html> 
    <head> 
     <title>My Page</title> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <script type="text/javascript" src="jquery-1.7.1.min.js"></script> 
     <script type="text/javascript" src="jquery.cookie.js"></script> 
     <script type="text/javascript" src="cook.js"></script>  
    </head> 
    <body> 
     <a id="get" href="#">YOO</a> 
     <script> 
      $("#get").click(function() { 
       alert(getCookie("mycookie")) ; 
       alert($.cookie('myCookie')) ; 
      }) ; 
     </script> 
    </body> 
</html> 

하지만 jQuery 플러그인과에 javscript의 기능을 사용하여 null를 돌려줍니다. 이 문제에 대해 알고 있습니까? 고마워요 :)

+0

쿠키 구현을 제거하고 jquery 쿠키 플러그인 만 사용하면 어떻게되는지 알려주세요. –

+1

쿠키가 활성화되어 있습니까? – Jashwant

+0

@sv_in : 여전히 "null"을 내고 있습니다 – Copernic

답변

2

기본적으로 jQuery 쿠키 플러그인은 현재 경로를 경로의 기본값으로 사용하여 쿠키를 설정합니다. 이는 쿠키가 설정된 동일한 페이지에서만 쿠키를 사용할 수 있음을 의미합니다. 쿠키를 사이트의 모든 페이지에서 읽을 수있게하려면 다음과 같이하십시오.

또한
$.cookie('the_cookie', 'the_value', { path: '/' }); 

, 통지가 나는 :

+0

감사합니다. 편집했지만 아직 작동하지 않습니다. – Copernic

+0

그래, 내 대답을 업데이 트, 당신은 또한 경로 매개 변수를 설정해야합니다. – jessegavin

+0

여전히 null을 반환합니다. 난 그냥 로카 서버에 내 파일을 넣어해야하므로 로컬 호스트에 내 파일을 포함하고 여전히 "null"을 반환하는 폴더를 이동해야 읽었습니다 – Copernic

1

보다는 ,을 사용하고 아파치/IIS이 실행 봤어? 쿠키는 서버에서 실행할 때만 설정됩니다. 귀하의 코드를 기반으로 빠른 jsfiddle을 작성했습니다 : http://jsfiddle.net/ZuCEC/

쿠키를 설정, 가져오고 삭제할 수 있어야하고 변경되는 값을 볼 수 있어야합니다.

희망이 있습니다.

+0

감사합니다. 그것은 JS 함수와 localhost에서 작동하지만 jquery 플러그인으로하지 않습니다 :-D 어쨌든 그것은 작동합니다 : - D는 – Copernic

관련 문제