jQuery 쿠키 플러그인을 사용하여 쿠키가 활성화되어 있는지 확인하기 위해 유효한 테스트 방법입니까?

StackOverflow https://stackoverflow.com/questions/2029725

  •  19-09-2019
  •  | 
  •  

문제

사이트에 로그인하기 전에 사용자가 JavaScript 및 쿠키를 활성화 해야하는 사이트가 있습니다. (JS 부분이 완료되고 완벽하게 작동합니다.) 현재 쿠키를 설정 한 다음 사용자를 다른 페이지 (PHP)로 리디렉션했습니다. 이것은 잘 작동했지만 이제는 우리가 리디렉션하는 페이지를 북마크에 추가 한 사람들이 있습니다. 물론 쿠키 세트가 없으므로 로그인 할 수 없습니다.

그래서 쿠키를 확인하기위한 다른 솔루션을 찾으려고 노력하고 있으며 jQuery 쿠키 플러그인. 모든 브라우저에서 호환되는지 궁금합니다 (물론 JS가 활성화 된 경우)?

도움이 되었습니까?

해결책

thxs shawn for 너의 답, 그러나 불행히도 브라우저가 항상 참조자를 보내지 않기 때문에 매번 사용할 수있는 것은 안정적이지 않습니다. 설정되지 않으면 루프가 끝납니다.

내가 생각한 또 다른 솔루션은 완전히 별도의 페이지로 리디렉션하는 것이 었습니다. 자체적으로 쿠키가 활성화되어 있는지 확인합니다 (자체로 리디렉션). 쿠키가 활성화되면 원래 페이지로 다시 리디렉션됩니다. 그렇지 않은 경우 문제에 대한 페이지로 리디렉션됩니다. 나는 그것이 효과가 있다고 생각하지만 확실하지 않습니다.

결국, 나는 IE 6, 7 및 8, Safari 4, Google Chrome 4, Firefox 3.5, Opera 10.2 및 몇 가지 다른 구성에서 jQuery Cooke 플러그인을 시도했으며 모든 구성에서 작동했습니다. 여기에 사용중인 코드는 다음과 같습니다.

$.cookie('test_cookie', 'cookie_value', { path: '/' });
if ($.cookie('test_cookie') == 'cookie_value') {
    // cookie worked, set/enable appropriate things
}

완벽하지는 않지만 95%의 경우에 효과가 있다고 생각합니다. 그렇지 않으면 실패하고 그들이 아무것도 할 수 없게됩니다.

다른 팁

페이지의 참조자를 확인할 수 있으며 홈페이지가 아닌 경우 리디렉션 할 수 있습니다. 참조자가 귀하의 홈페이지이고 쿠키 세트가 없으면 쿠키가 활성화되지 않았다는 것을 알게 될 것입니다.

나는이 1 라이너 기능을 좋아한다 :

function cookiesEnabled() {
    return $.cookie('check', 'valid', { expires: 1 }) && $.cookie('check') == 'valid';
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top