IT TIP

jQuery $ .cookie는 함수가 아닙니다.

itqueen 2020. 10. 28. 21:20
반응형

jQuery $ .cookie는 함수가 아닙니다.


jQuery를 사용하여 쿠키를 설정하려고합니다.

$.cookie("testCookie", "hello");
alert($.cookie("testCookie"));

하지만 내 페이지를로드 할 때 "$ .cookie는 함수가 아닙니다"라는 오류 메시지가 나타납니다. 내가 아는 것은 다음과 같습니다.

  • 여기 에서 jQuery 쿠키 플러그인을 다운로드했습니다 .
  • jQuery에 연결하고 쿠키 플러그인을 사용합니다.
  • jQuery와 jQuery.cookie 모두 200 OK로 올바르게로드됩니다.

나는 (여러 다른 답변 살펴 보았다 여기여기에 대부분의 사람들이 cookie.js 파일의 이름을 변경 제안되는 다른 사람의 사이에서). 내 쿠키 파일의 이름을 "jquery.cookeee.js"로 변경했지만 결과는 동일합니다.

여기서 무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까?

도움이된다면 MVC 4에서 웹 애플리케이션을 만들고 있습니다.


다른 사람이 $.cookie is not a function문제를 발견하면 다음 과 같은 가능한 모든 문제 / 해결 방법을 찾았습니다.

  • 쿠키 플러그인이 다운로드되지 않았습니다. $.cookie표준 jQuery 기능이 아니며 여기 에서 플러그인을 다운로드해야합니다 . <script>필요한 경우 적절한 태그 를 포함 해야합니다 (다음 참조).
  • 쿠키 스크립트를 포함 할 때 jQuery FIRST를 먼저 포함한 다음 쿠키 플러그인을 포함해야합니다.

즉, 머리에는 다음이 포함될 수 있습니다.

<script src="~/Scripts/jquery-2.0.3.js" type="text/javascript"></script>

그리고

<script src="~/Scripts/jquery_cookie.js" type="text/javascript"></script>
  • 어떤 경우에는 ".cookie"가 포함되지 않은 파일로 파일 이름을 바꾸면 웹 서버 문제로 인해이 오류가 수정되었습니다. 기본적으로 다운로드 된 스크립트의 제목은 "jquery.cookie.js"이지만 위와 같이 "jquery_cookie.js"와 같은 이름으로 변경해보십시오. 이 문제에 대한 자세한 내용은 여기에 있습니다 .
  • 마지막으로 (이것은 내 문제였습니다) jQuery를 두 번 이상 포함하지 않았는지 확인하십시오. 그렇다면 1. jQuery가 올바르게로드 될 수 있습니다. 2. 쿠키 플러그인이 올바르게로드됩니다. 3. 마지막으로 두 번째 jQuery를 포함하면 첫 번째 항목을 덮어 쓰고 쿠키 플러그인을 삭제합니다.

ASP.Net MVC 프로젝트를 사용하는 모든 사람은 기본 자바 스크립트 번들 포함에주의하십시오. 때로는 찾기가 어려울 수 있습니다. 두 번째 jQuery 포함은 라인 아래의 글로벌 레이아웃 페이지 중 하나에 포함되었습니다 @Scripts.Render("~/bundles/jquery"). 개인적으로 번들을 렌더링하지 않고 필요에 따라 자바 스크립트에 연결하는 것을 선호합니다.

이것에 대한 도움을 주신 Kevin B 에게 건배와 특별한 감사를드립니다 .


이전 버전 오류가 있어요 그래서 만약 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>

참고 URL : https://stackoverflow.com/questions/18024539/jquery-cookie-is-not-a-function

반응형