2012-03-30 3 views
0

정말 이상한 문제가있어서 가능한 아이디어를 찾고 있습니다. 클라이언트 컴퓨터에서 쿠키가 발견되었는지 여부에 따라로드하는 비행편이 있습니다. 비행편에는 "Do not show again"이라는 'No thanks'체크 박스가 있습니다. ". 나는 그것이 비행 페이지에서 다음과 같이 선택되어 있는지 확인합니다 :존재하더라도 쿠키를 찾을 수 없습니다.

$(document).ready(function() { 
jQuery(window).bind("beforeunload", function(){ setCookieFO('noShowMerkleCpn','true',180);  }); 
}); 

function setCookieFO(c_name,value,exdays){ 
if($('#noThanks').attr('checked')){ 
var exdate=new Date(); 
exdate.setDate(exdate.getDate() + exdays); 
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
document.cookie=c_name + "=" + c_value; 
}else{ 
} 
} 

나는 방화범의 코드를 실행하고 쿠키가 문서 언로드에 저장됩니다 것을 확인했습니다. 나는 심지어 나의 쿠키에 들어가고, 쿠키를 발견 할 수있다. 쿠키를 확인하는 방법은 다음과 같습니다.

function runFancyBox(){ 
var idx = document.cookie.indexOf('noShowMerkleCpn'); 
if(idx < 0){ 
$('#cpnForm').click(); 
}else{ 
} 
} 

쿠키 값은별로 신경 쓰지 않습니다. 그냥 존재하는지 확인하고 그렇지 않으면 비행을 표시합니다. 그러나 어떤 이유로이 검사는 쿠키가 존재하더라도 -1을 반환합니다.

추가 정보 :

쿠키는

server/bank/ima 

동일한 서버

server/bank/ima/script 

에 쿠키를 찾습니다 스크립트에서 내 flyover.Html 페이지에 저장됩니다

쿠키는 호스트와 함께 Path 값과 함께 저장됩니다. server

/bank/ima/ 

이 문제의 원인이 될 수있는 것이 있습니까? 어떤 제안?

+0

document.cookie를 읽을 때 쿠키가 실제로 있는지 확인 했습니까? – jbabey

+0

어떤 의미에서. 수표에 중단 점을 설정하고 내 쿠키를보고 그 방법으로 확인했습니다. 'document.cookie'는 여전히 쿠키를 찾는데 실패합니다. – Rondel

+0

document.cookie는 문자열을 반환합니다. 쿠키는 해당 문자열에 있거나 없는가? – jbabey

답변

1

두 가지 사항을 확인합니다. 먼저, 추가하지 않고 document.cookie를 설정하고 있으므로 이전의 모든 쿠키를 삭제합니다 (나쁜 아이디어). 둘째, 쿠키의 도메인과 경로를 읽는 페이지와 동일한 도메인으로 설정하십시오.

또한

checked 속성의 사용량에주의해야합니다 내가 localhost를 내 서버 모두에 코드를 시도

if($('#noThanks').prop('checked'))

http://timmywillison.com/2011/When-to-use-.attr%28%29-and-.prop%28%29.html

1

, 그리고 그것을 잘 작동 나는 당신이주의했다 가정 쿠키가 실제로 설정되도록 브라우저를 닫으십시오. 제 생각에는 경로에 관한 문제가 있습니다 만, 경로에 대해 말하는 것에서부터 그것이 무엇인지는 분명하지 않습니다.

코드를 내 서버에 저장 했으므로 적어도 작동하는 코드를 검사 할 수 있습니다. 쿠키를 설정하는

URL은 : http://www.bridgesights.com/hondobridge/bbohondo/setcookietest.php

쿠키를 테스트 할 수있는 URL은 :이 문제와 아무 상관이 있지만 http://www.bridgesights.com/hondobridge/bbohondo/bbohondo_files/getcookietest.php

, 나는 매우 조작하기위한 JQuery와 - 쿠키 플러그인을 추천합니다 쿠키. 매우 가볍고 사용하기 쉽습니다. 링크는 다음과 같습니다 https://github.com/carhartl/jquery-cookie

+0

그것은 경로 문제가되었습니다. @jbabey와 같은 쿠키의 경로를 설정하면 문제가 해결 될 것이라고 제안했습니다. – Rondel

관련 문제