jQuery를 사용하여 쿠키를 설정하려고합니다.
$.cookie("testCookie", "hello");
alert($.cookie("testCookie"));
하지만 내 페이지를로드 할 때 “$ .cookie is not a function”오류가 표시됩니다. 내가 아는 것은 다음과 같습니다.
- 여기 에서 jQuery 쿠키 플러그인을 다운로드했습니다 .
- jQuery에 연결하고 쿠키 플러그인을 사용합니다.
- jQuery와 jQuery.cookie 모두 200 OK로 올바르게로드됩니다.
나는 (여러 다른 답변 살펴 보았다 여기 와 여기에 대부분의 사람들이 cookie.js 파일의 이름을 변경 제안되는 다른 사람의 사이에서). 쿠키 파일의 이름을 “jquery.cookeee.js”로 변경했지만 결과는 동일합니다.
여기서 무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까?
도움이된다면 MVC 4에서 웹 애플리케이션을 만들고 있습니다.
답변
내가 본 모든 가능한 문제 / 해결 방법은 다음과 같습니다.
1. 쿠키 플러그인 다운로드
$.cookie
표준 jQuery 기능이 아니며 여기 에서 플러그인을 다운로드해야합니다 . <script>
필요한 경우 적절한 태그 를 포함 해야합니다 (다음 참조).
2. 쿠키 플러그인 앞에 jQuery 포함
쿠키 스크립트를 포함 할 때 jQuery FIRST를 먼저 포함한 다음 쿠키 플러그인을 포함해야합니다.
<script src="~/Scripts/jquery-2.0.3.js" type="text/javascript"></script>
<script src="~/Scripts/jquery_cookie.js" type="text/javascript"></script>
3. jQuery를 두 번 이상 포함하지 마십시오.
이것은 내 문제였습니다. jQuery를 두 번 이상 포함하지 않았는지 확인하십시오. 그렇다면 다음이 가능합니다.
- jQuery가 올바르게로드됩니다.
- 쿠키 플러그인이 올바르게로드됩니다.
- 두 번째 jQuery 포함은 첫 번째 항목을 덮어 쓰고 쿠키 플러그인을 파괴합니다.
ASP.Net MVC 프로젝트를 사용하는 모든 사람은 기본 javascript 번들 포함에주의하십시오. 두 번째 jQuery 포함은 라인 아래의 글로벌 레이아웃 페이지 중 하나에 포함되었습니다 @Scripts.Render("~/bundles/jquery")
.
4. “.cookie”를 포함하지 않도록 플러그인 파일 이름을 바꿉니다.
드문 경우지만 “.cookie”가 포함되지 않은 파일로 파일 이름을 바꾸면 웹 서버 문제로 인해이 오류가 수정되었습니다. 기본적으로 다운로드 된 스크립트의 제목은 “jquery.cookie.js”이지만 위와 같이 “jquery_cookie.js”와 같은 이름으로 변경해보십시오. 이 문제에 대한 자세한 내용은 여기에 있습니다 .
답변
이전 버전 오류가 있어요 그래서 만약 jQuery를 쿠키의는 사용되지 않습니다 :
$.cookie is not a function
새 버전으로 업그레이드해야합니다 .
새 버전의 API도 다릅니다.
$.cookie("yourCookieName");
당신은 사용해야합니다
Cookies.get("yourCookieName");
답변
이 쿠키 플러그인을 jquery에 추가하십시오.
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
답변
페이지 바닥 글이 아닌 머리글에 스크립트를 포함했는지 확인하십시오. 특히 WordPress에서 이것은 작동하지 않았습니다.
wp_register_script('cookie', get_template_directory_uri() . '/js/jquery.cookie.js', array(), false, true);
마지막 매개 변수는 바닥 글에 스크립트를 포함하고 false (기본값)로 변경해야 함을 나타냅니다. 작동 방식 :
wp_register_script('cookie', get_template_directory_uri() . '/js/jquery.cookie.js');
답변
먼저 추가 jquery.cookie.js
한 다음 해당 함수를 사용하는 곳에 js 또는 jQuery를 추가해야합니다.
브라우저가 웹 페이지를 먼저로드 할 때 이것을로드 jquery.cookie.js
한 다음 js 또는 jQuery를 로드하면 이제 해당 기능을 사용할 수 있습니다.
답변
나도이 문제가 있었다. 나는 의도대로 헤드 BELOW jquery에 쿠키 js 가로 드되는 동안 본문 내부의 스크립트 태그에 $ .cookie를 포함하는 $ (document) .ready 함수를 사용하면 쿠키 전에 $ (document) .ready beeing이 처리된다는 것을 알았습니다. 플러그인이로드를 마칠 수 있습니다.
$ (document) .ready 스크립트 이전에 본문의 쿠키 플러그인로드 스크립트를 이동했는데 오류가 사라졌습니다. : D
답변
jQuery $ .cookie가이 문제를 해결하는 기능이 아닙니다. jquery cdn 업데이트에서이 문제를 해결합니다.
<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js" integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30=" crossorigin="anonymous"></script>