TypeError: $.ajax(...)는 함수가 아닙니다.
AJAX 요청을 생성하려고 합니다.함수 정의는 다음과 같습니다.
function AJAXrequest(url, postedData, callback) {
$.ajax({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
}
파라미터는 다음과 같습니다.
AJAXrequest('voting.ajax.php', data, function(data) {
// function body
});
되지 않고 '콜백'이 표시됩니다.console.error:
TypeError: $.ajax(...) is not a function.
왜요?
여기 있는 어떤 대답도 내게 도움이 되지 않았다.문제는 제가 jQuery의 슬림한 빌드를 사용하고 있었다는 것입니다.jQuery는 몇 가지를 제거했습니다.아약스도 그 중 하나입니다.
해결 방법:여기서 jQuery의 일반(압축 여부에 관계없이) 버전을 다운로드하여 프로젝트에 포함시키면 됩니다.
슬림 버전이 아닌 풀 버전의 jquery를 사용하고 있는지 다시 한 번 확인합니다.
jquery cdn 스크립트 jquery cdn 스크립트ququ the the the the the the the .쥬리ajax기능을 합니다.따라서 (부트스트랩 웹사이트에서 복사 붙여넣기) slim version jquery 스크립트 링크를 사용하는 경우 대신 풀 버전을 사용하십시오.
, ,, 용을 하세요.<script src="https://code.jquery.com/jquery-3.1.1.min.js"><script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"
확실하진 않지만 코드에 구문 오류가 있는 것 같습니다.시험:
$.ajax({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
에 .$.ajax필요 없는 것들이죠.그래도 오류가 발생할 경우 jQuery 스크립트파일은 로드되지 않습니다.
다음 jquery min 버전을 참조하십시오.
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
다음 버전의 jQuery를 사용했는데 작동했습니다.
<script src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
jQuery의 슬림한 빌드는 사용하지 마십시오.jQuery에는 아약스 기능이 없습니다.https://releases.jquery.com/에서 제공하는 미니 버전을 사용합니다.
주의: 부트스트랩 웹사이트에서 복사한 jquery 링크는 사용하지 마십시오.슬림 버전을 사용하기 때문입니다.
이 글이 오래된 글이라는 것을 알고 있습니다.거스는 기본적으로 대답했습니다.제 경험상 JQuery는 CDN에서 Import하기 위한 코드를 변경했기 때문에 CDN에서 Import하기 위한 최신 코드를 게시하려고 합니다.
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
ajax 함수 뒤에 괄호를 넣고 인수 목록을 정의하기 위한 다른 괄호 세트를 넣었기 때문에 구문 오류가 있습니다.-
기입하신 대로:-
$.ajax() ({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
에이잭스 주변의 괄호는 삭제해야 합니다.-
$.ajax({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
부트스트랩 html 템플릿을 사용하는 경우 템플릿 하단의 jquery slim에 대한 링크를 삭제해야 합니다.
함수에 대괄호가 . 대신 AJAX를 해 보십시오. 대괄호가 너무 많습니다. 츠미야$.ajax({
같은 질문을 받았는데 해결방법은 JQuery 스크립트를 추가하는 것이었습니다.
특히 firefox/chrome에서 js를 디버깅할 때 대응하는 JQuery가 로딩되어 있는지 확인해야 합니다.
nodejs에서 이 작업을 수행하려는 사용자는 다음과 같이 하십시오.jquery에는 브라우저(또는 유사한 것)가 필요하기 때문에 즉시 사용할 수 없습니다.Import를 실행하려고 했는데 로깅을 하고 있었어요.console.log($)라고 썼다.[Function]그리고 또console.log($.ajax)그것은 돌아왔다undefined나는 없었다.tsc에러나 인텔리주 자동완성이 있어서 어떻게 된 건지 궁금했어요.
그러다 어느 순간 깨달았어요node문제일 수 있습니다.타자기본이아닙니다.브라우저에서도 같은 코드를 사용했는데 작동했어요.작동시키려면 다음을 실행해야 합니다.
require("jsdom").env("", function(err, window) {
if (err) {
console.error(err);
return;
}
var $ = require("jquery")(window);
});
(예: https://stackoverflow.com/a/4129032/3022127)
부트스트랩스크립트를포함했는데첫 번째 스크립트(jquery.slim)가 이 에러의 원인입니다.첫 번째 열을 제거하면 문제가 해결되었습니다.
JQuery의 날씬한 체격 때문일지도 모릅니다.'압축되지 않은' 빌드 또는 '최소화된' 빌드를 사용해 보십시오.(JQuery CDN)
JQuery CDN보다 먼저 부트스트랩 CDN을 로드하는 경우도 있습니다.제 경우 Bootstrap CDN을 제거하고 JQuery를 Body 태그의 끝으로 이동하면 문제가 해결되었습니다.
제 경험을 공유하겠습니다.
내 html 페이지 디자이너 사용:
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
간단한 AJAX 요청을 작성하면 TypeError: $.ajax(…)는 함수가 아닙니다.
그래서 덧붙입니다.
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
적어도 나한테는 딱 맞는 것 같아.
언급URL : https://stackoverflow.com/questions/18271251/typeerror-ajax-is-not-a-function
'programing' 카테고리의 다른 글
| 스프링 부트는 데이터를 사용하여 데이터베이스를 초기화하기 위해 데이터를 로드하지 않습니다.sql (0) | 2023.03.26 |
|---|---|
| 누가 내 워드프레스 사이트를 호스팅하고 있는지 어떻게 알 수 있습니까? (0) | 2023.03.26 |
| 모바일 디바이스에서 MAMP/wordpress를 사용하여 로컬 서버를 테스트하고 있습니까? (0) | 2023.03.26 |
| Oracle 10g 데이터베이스 스키마에서 연결된 사용자 삭제 (0) | 2023.03.26 |
| C#의 Newtonsoft를 사용하여 JSON 차이를 찾아 반환하시겠습니까? (0) | 2023.03.26 |