2011-02-17 13 views
0

내 코드는 (jQuery 용 쿠키 플러그인을 사용하여) javascript로 쿠키를 설정 한 다음 해당 쿠키를 읽어야하는 PHP 스크립트에 대해 ajax 호출을합니다. PHP 스크립트가이 쿠키를 읽을 수 없으므로 jQuery 쿠키 플러그인에 버그가있는 것 같습니다. 또한 Chrome의 Resources 패널을 보면 관련 도메인 아래에 쿠키가 표시되지 않습니다. 또한 Javascript의 표준 document.cookie 메서드를 사용하여 쿠키를 설정하면 쿠키가 리소스 패널에 표시되고 PHP 스크립트에서 해당 쿠키를 읽을 수 있습니다. jQuery 플러그인을 사용하려는 주된 이유는 설정 값이 줄 바꿈을 가지고 있기 때문이며 jQuery 쿠키 플러그인이이를 우아하게 처리하는 것으로 보입니다. 그것은 MySQL 데이터베이스에 저장 될 값이며 출력시 줄 바꿈이 자동으로 (br) 및 (p) 태그로 변환됩니다. 그래서 jQuery 쿠키 플러그인은 나에게 내가 원하는 가치를주는 것 같지만 진짜 쿠키는 아닙니다!jQuery 쿠키 플러그인은 실제로 쿠키를 설정하는 것 같지 않습니다.

어쨌든, 여기에 내가 사용하고있는 코드가 있습니다. jQuery 쿠키 플러그인을 사용하지 않고 필자가 필요로하는 linebreaks를 유지하는 방법을 알려주십시오. 플러그인의 플러그인/구현에 문제가 있는지 알아 내려고하지 마십시오.

자바 스크립트 :

$.cookie('flavor','chocolate',{expires:7}); 
$.get('http://example.com/readCookie.php',function(data){ 
    console.log(data); 
}); 

readCookie.php는

$myCookie = $_COOKIE['flavor']; 
echo $myCookie; 

'에코'문은 위조차 빈 문자열, 전혀 아무것도 표시하지 않습니다. var_dump를 쿠키와 함께 사용하면 NULL이됩니다. 그러나 $ .cookie ('flavor')를 콘솔에 입력하여 실제로 설정되어 있는지 확인할 수 있습니다. 하지만 이전에 말했듯이 Chrome 개발자 도구의 Resources 패널에는 표시되지 않으므로 실제로 쿠키라고 확신하지는 못합니다. 내 PHP 스크립트도 그 의심에 동의하는 것 같습니다. :)

답변

1

게시 한 코드에서 클라이언트 측에서 'flavor'라는 쿠키를 설정하고 서버에서 'comment'라는 쿠키를 읽으려고합니다. 니가 아무 것도 얻지 못한다는 것이 나에게 의미가있다.

아마도 게시자가 질문을 게시하는 중 오류 일뿐입니다. 당신이 도메인 특정는 AJAX

'http://' + window.location.host + '/readCookie.php' 

에서 요청 심지어 단지

'/readCookie.php' 

쿠키에 지점 때

는 어떤 일이 발생합니다.

+0

예, 실수였습니다. 그에 따라 게시물을 업데이트했습니다. 도메인 이름을 window.location.host로 변경하면 똑같은 일이 발생합니다. 실제로 jQuery 쿠키 플러그인에 문제가있는 것으로 보입니다. 내 정보도 함께 업데이트했습니다. – maxedison

+0

흥미 롭습니다. 대신이 플러그인을 사용해 볼 수 있습니까? http://code.google.com/p/cookies/ 어떻게 동작하는지 알려주십시오. – JAAulde

0

쿠키 값의 줄 바꿈이 문제를 일으키는 것으로 생각됩니다.

왜 base64가 쿠키 값을 인코딩합니까?

관련 문제