TypeError : $ .ajax (…) 함수가 아닙니까?
MySQL 데이터베이스에서 일부 데이터를 반환하는 간단한 AJAX 요청을 만들려고합니다. 아래 내 기능은 다음과 같습니다.
function AJAXrequest(url, postedData, callback) {
$.ajax() ({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
}
... 필요한 매개 변수를 파싱하여 여기에 전화합니다.
AJAXrequest('voting.ajax.php', imageData, function(data) {
console.log("success!");
});
그러나 성공 콜백이 실행되지 않고 ( "성공!"이 콘솔에 기록되지 않기 때문에) 콘솔에 오류가 발생합니다.
TypeError: $.ajax(...) is not a function.
success: callback
이것은 무엇을 의미 하는가? 성공 이벤트가 $ .ajax 내에서 익명 함수를 트리거하기 전에 AJAX 요청을 수행했지만 이제는 별도의 명명 된 함수 (이 경우 콜백)를 실행하려고합니다. 어떻게하면 되나요?
여기의 답변 중 어느 것도 도움이되지 않았습니다. 문제는 : jQuery의 슬림 빌드를 사용하고 있었는데, 일부는 제거되었지만 ajax는 그중 하나입니다.
해결책 : 여기 에 jQuery의 일반 (압축 또는 비 압축) 버전을 다운로드 하여 프로젝트에 포함하십시오.
슬림 버전이 아닌 전체 버전의 jquery를 사용하고 있는지 다시 확인하십시오.
jquery와 함께 제공되는 jquery cdn-script 링크를 사용하고있었습니다. 문제는 이것이 기본적으로 slim.jquery.js이며 ajax
기능 이없는 것입니다. 따라서 (Bootstrap 웹 사이트에서 복사하여 붙여 넣은) 슬림 버전 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와 문서
지원 중단 공지 : jqXHR.success (), jqXHR.error () 및 jqXHR.complete () 콜백은 jQuery 3.0부터 제거되었습니다. 대신 jqXHR.done (), jqXHR.fail () 및 jqXHR.always ()를 사용할 수 있습니다.
AJAX 함수에 오류가 있습니다. 대괄호가 너무 많습니다. 대신 시도하십시오 $.ajax({
인수 목록을 정의하기 위해 ajax 함수 및 괄호 세트 뒤에 괄호를 배치하면 구문 오류가 있습니다.
당신이 쓴대로 :-
$.ajax() ({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
아약스 주위의 괄호는 제거해야합니다 :-
$.ajax({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
나는 같은 질문에 직면했으며, 해결책은 JQuery 스크립트를 추가하는 것입니다.
특히, firefox / chrome에서 js를 디버깅 할 때 해당 JQuery가로드되었는지 확인해야합니다.
아약스가 포함 된 jquery 최소 버전을 참조하십시오.
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
For anyone trying to run this in nodejs: It won't work out of the box, since jquery needs a browser (or similar)! I was just trying to get the import to run and was logging console.log($)
which wrote [Function]
and then also console.log($.ajax)
which returned undefined
. I had no tsc
errors and had autocomplete from intellij, so I was wondering what's going on.
Then at some point I realised that node
might be the problem and not typescript. I tried the same code in the browser and it worked. To make it work you need to run:
require("jsdom").env("", function(err, window) {
if (err) {
console.error(err);
return;
}
var $ = require("jquery")(window);
});
(credits: https://stackoverflow.com/a/4129032/3022127)
If you are using bootstrap html template remember to remove the link to jquery slim at the bottom of the template. I post this detail here as I cannot comment answers yet..
참고URL : https://stackoverflow.com/questions/18271251/typeerror-ajax-is-not-a-function
'IT박스' 카테고리의 다른 글
Git이 Rubymine에 의해 생성 된 .idea 파일을 무시하게하는 방법 (0) | 2020.06.01 |
---|---|
Symfony2 Twig 템플리트에서 구성 매개 변수를 얻는 방법 (0) | 2020.06.01 |
JavaScript로 예약 된 키워드 (0) | 2020.06.01 |
Android 프로젝트에서 ThreeTenABP를 사용하는 방법 (0) | 2020.06.01 |
함수 서명에서 std :: enable_if를 피해야하는 이유 (0) | 2020.06.01 |