我试图创建一个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.

Why?


当前回答

不确定,但看起来你的代码中有一个语法错误。试一试:

$.ajax({
  type: 'POST',
  url: url,
  data: postedData,
  dataType: 'json',
  success: callback
});

$旁边有额外的括号。这些都是不需要的。如果仍然得到错误,则不会加载jQuery脚本文件。

其他回答

我包括引导脚本和第一个(jquery.slim)是这个错误的原因。删除第一行解决了我的问题。

不确定,但看起来你的代码中有一个语法错误。试一试:

$.ajax({
  type: 'POST',
  url: url,
  data: postedData,
  dataType: 'json',
  success: callback
});

$旁边有额外的括号。这些都是不需要的。如果仍然得到错误,则不会加载jQuery脚本文件。

有一个语法错误,因为你在ajax函数和另一组括号后放置括号来定义参数列表:-

如你所写:-

$.ajax() ({
    type: 'POST',
    url: url,
    data: postedData,
    dataType: 'json',
    success: callback
});

括号周围的ajax必须被删除,它应该是:-

$.ajax({
    type: 'POST',
    url: url,
    data: postedData,
    dataType: 'json',
    success: callback
});

我知道这是一个旧帖子——格斯基本上回答了它。 但根据我的经验,JQuery已经改变了从CDN导入的代码——所以我想我应该继续下去,发布他们从CDN导入的最新代码:

<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>

如果你使用的是bootstrap html模板,记得删除模板底部的jquery slim链接。