programing

크롬이 로컬 jQuery 쿠키를 무시하는 이유는 무엇입니까?

padding 2023. 10. 30. 20:47
반응형

크롬이 로컬 jQuery 쿠키를 무시하는 이유는 무엇입니까?

저는 쿠키를 설정하고 읽기 위해 jQuery Cookie 플러그인(댓글이 있는 다운로드데모 및 소스 코드)을 사용하고 있습니다.는 로컬 머신에 페이지를 개발하고 있습니다.

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

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

내가 아는 것:

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

따라서 로컬 파일의 Google Chrome에 대해서만 쿠키가 실패합니다.

가능한 원인:

  • Google Chrome은 하드 드라이브의 웹 페이지에서 쿠키를 허용하지 않습니다(파일:///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)를 직접 사용하는 경우 쿠키를 지원하므로 로컬 호스트의 경우 더 쉬운 해결 방법이 될 수 있습니다.

로컬 애플리케이션의 경우 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");

이것이 완벽한 해결책이 아니라는 것을 알고 있지만 저에게는 효과가 있습니다.

이것이 저에게 효과가 있었습니다.

enter image description here

Chrome 아이콘에서 마우스 오른쪽 단추를 누른 후 Properties(속성), Shortcut(바로가기) 탭을 선택하고 대상 경로의 마지막에 --enable-file-cookies(파일 쿠키 활성화)를 추가합니다.

같은 문제가 있었는데 대신 localhost의 IP 주소를 사용해보세요.예를 들어 "http://127.0.0.1/당신의 사이트/"

쿠키 & 구글 애널리틱스를 확인해보세요.

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

이 행을 로 바꿉니다.

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

이 프로젝트는 잘 진행되고 있습니다.

또 다른 가능한 원인은path: "/", 정상적인 웹 URL을 사용하지 않기 때문에/아마 큰 의미는 없을 것입니다. 경로를 전혀 설정하지 않고 시도해 보십시오.

Chrominum을 사용하는 경우 로컬 쿠키를 활성화하는 명령입니다.

크롬-browser --enable-file-

크롬도 마찬가지입니다.

이것이 당신에게 도움이 되기를 바랍니다!

해결 방법으로 로컬 파일에 액세스할 수 있는 Tampermonkey를 사용할 수 있습니다(Tampermonkey 스크립트에 로컬 htm 페이지를 포함하는 방법?) 그러면 Tampermonkey의 스토리지를 사용하게 되고 GM_getValue(데이터), GM_setValue(데이터) 기능으로 데이터를 설정하고 가져올 수 있습니다.Windows 탐색기의 사용자 지정 가능한 대안으로 사용한 로컬 HTML 페이지에 사용했습니다.

하지만 유리의 답변에서 나온 로컬 스토리지는 완벽하게 작동합니다.

언급URL : https://stackoverflow.com/questions/335244/why-does-chrome-ignore-local-jquery-cookies

반응형