[jquery] Chrome이 로컬 jQuery 쿠키를 무시하는 이유는 무엇입니까?

쿠키 를 설정하고 읽기 위해 jQuery 쿠키 플러그인 ( 다운로드데모주석 포함 소스 코드 )을 사용하고 있습니다. 내 로컬 컴퓨터 에서 페이지를 개발 중 입니다 .

다음 코드는 FireFox 3, IE 7 및 Safari (PC)에서 쿠키를 성공적으로 설정합니다. 그러나 브라우저가 Google 크롬이고 페이지가 로컬 파일 인 경우 작동하지 않습니다.

$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});

내가 아는 것 :

  • 플러그인의 데모 는 Chrome에서 작동합니다.
  • 내 코드를 웹 서버 (http : //로 시작하는 주소)에 넣으면 Chrome에서 작동합니다.

따라서 쿠키 는 로컬 파일의 Google 크롬 에서만 실패 합니다 .

가능한 원인 :

  • Google 크롬은 하드 드라이브의 웹 페이지 (file : /// C : /websites/foo.html과 같은 경로)의 쿠키를 허용하지 않습니다.
  • 플러그인 암시의 일부로 인해 Chrome에서 이러한 쿠키를 거부합니다.

누구든지 이것을 확인하고 근본 원인을 확인할 수 있습니까?



답변

Chrome은 –enable-file-cookies 플래그로 시작하지 않는 한 로컬 파일 (또는 Peter Lyons가 언급 한 것처럼 localhost *)에 대한 쿠키를 지원하지 않습니다. http://code.google.com/p/chromium/issues/detail?id=535 에서 이에 대한 토론을 읽을 수 있습니다 .

* Chrome 로컬 IP 주소 (127.0.0.1)를 직접 사용하는 경우 쿠키를 지원합니다. 따라서 localhost의 경우 더 쉬운 해결 방법이 될 수 있습니다.


답변

로컬 애플리케이션의 경우 대신 Chrome에서 localStorage를 사용합니다.
http://people.w3.org/mike/localstorage.html


답변

나는 약간의 문제가 있었고이 끔찍한 해결책을 해결했습니다. 스토어와 쿠키 플러그인을 함께 사용합니다.

<script src="js/jquery.cookies.2.2.0.js" type="text/javascript"></script>
<script src="js/jquery.Storage.js" type="text/javascript"></script>

var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;

//get cookies
var helpFlag=(is_chrome)?$.Storage.get("helpFlag"):$.cookies.get("helpFlag");

//set cookies
if(is_chrome)$.Storage.set("helpFlag", "1");else $.cookies.set("helpFlag", "1");

이것이 완벽한 솔루션은 아니지만 저에게 효과적이라는 것을 알고 있습니다.


답변

이것은 나를 위해 일했습니다.

여기에 이미지 설명 입력

Chrome 아이콘을 마우스 오른쪽 버튼으로 클릭하고 속성, 바로 가기 탭을 선택하고 대상 경로의 마지막에 –enable-file-cookies를 추가하십시오.


답변

동일한 문제가 발생했습니다. 대신 localhost의 IP 주소를 사용해보십시오. 예 : “http://127.0.0.1/yoursite/”


답변

쿠키 및 Google Analytics 를 확인하십시오 .

$.cookie("nameofcookie", cookievalue, {path: "/", expires: 30});

이 줄을

$.cookie("nameofcookie", cookievalue, {*Path:* "/", expires: 30});

이 프로젝트는 잘 작동합니다.


답변

또 다른 가능한 원인은 path: "/"일반 웹 URL을 사용 /하지 않기 때문에별로 의미가 없을 것입니다. 경로를 전혀 설정하지 않고 시도해보세요.