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


83

쿠키 를 설정하고 읽기 위해 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에서 이러한 쿠키를 거부합니다.

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


데모가 작동한다고 말하면 하드 드라이브에 저장하고 file : //처럼 액세스한다는 의미입니까?
Greg

아니요-위의 링크에 Chrome으로 액세스하기 만하면됩니다.
Nathan Long

답변:


94

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

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


는 IP에 대한 도메인을 설정하면 나를 위해 작동하지만 도메인을 제거한 경우는 일을하지 않았다 (로컬, 우리는 생산을위한 도메인 필요)
Kyeotic

Mac OSX에서 --enable-file-cookies 플래그로 Chrome을 시작하려면 터미널 명령을 사용하십시오. 'open / Applications / Google \ Chrome.app/Contents/MacOS/Google \ Chrome --args --enable-file-cookies' -(또는 Chrome.app 위치에 따라 조정)
Peeech


5

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

<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");

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


4

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

여기에 이미지 설명 입력

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


3

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


3

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

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

이 줄을

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

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


1
감사합니다. 사례를 "Path"로 변경하여 문제를 해결합니다
Otto Kanellis 2014-06-02

2

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


좋은 생각이지만 어쨌든 '/'가 기본값입니다. 나는 'file : /// C : /'를 시도했지만이 맥락에서 그것은 말도 안된다고 생각합니다.
Nathan Long

0

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

크롬 브라우저-파일 쿠키 사용

크롬도 마찬가지입니다.

이것이 당신을 돕기를 바랍니다!


0

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

그러나 실제로 로컬 스토리지 에서 유리의 대답은 완벽하게 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.