IT박스

TypeError : $ .ajax (…) 함수가 아닙니까?

itboxs 2020. 6. 1. 19:26
반응형

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

반응형