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

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를 두 번 이상 포함하지 않았는지 확인하십시오. 그렇다면 다음이 가능합니다.

  1. jQuery가 올바르게로드됩니다.
  2. 쿠키 플러그인이 올바르게로드됩니다.
  3. 두 번째 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>