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


当前回答

我使用以下版本的jQuery和它的工作

<script src="https://code.jquery.com/jquery-3.3.1.min.js"
    integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

其他回答

仔细检查你使用的是完整版的jquery,而不是一些精简版。

我使用的是jquery cdn-script链接自带的jquery。问题是这个默认是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 "

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

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

你有一个错误在你的AJAX函数,括号太多,尝试代替$.ajax({

引用包含ajax的jquery最小版本:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

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