我试图创建一个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的精简版本,它没有ajax功能。请使用https://releases.jquery.com/上的简化版本

注意:请确保不要使用从Bootstrap网站复制的jquery链接,因为他们使用的是精简版。

其他回答

让我分享一下我的经验:

我的HTML页面设计器使用:

<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>

当我创建一个简单的AJAX请求,得到一个错误,它说, $.ajax(…)不是一个函数

所以,我补充说:

<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>

那么,至少对我来说是完美的。

不要使用jQuery的精简版本,它没有ajax功能。请使用https://releases.jquery.com/上的简化版本

注意:请确保不要使用从Bootstrap网站复制的jquery链接,因为他们使用的是精简版。

这可能是因为JQuery的精简构建。尝试使用“未压缩”或“缩小”版本。JQuery (cdn) 这也可能是因为在JQuery CDN之前加载了Bootstrap CDN。在我的例子中,我删除了Bootstrap CDN,并将JQuery移动到'body'标签的末尾,问题就解决了。

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

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

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