未捕获的TypeError:$ .post不是函数


73

我在控制台中收到此错误:

未捕获的TypeError:$ .post不是函数

对于这段代码:

<script type="text/javascript">
    $('#cl_submit').click(function() { //#cl_submit is a button
        $('#cl_stage1msg').html('Processing...');
        $.post("process/cookie.php", $("#cl").serialize(), function(response) { //#cl is a form
            $('#cl_stage1msg').html(response);
        });
        return false;
    });
</script> <!-- popup included -->

我只是找不到任何错误。有什么线索,为什么这不起作用?

然而, $('#cl_stage1msg').html('Processing...');工作正常。

似乎只有post函数没有被识别。

我正在使用https://code.jquery.com/jquery-3.1.0.slim.min.js


请提供一个最小的可复制示例,强调“完整”
zzzzBov

检查您的脚本标签,是否包含一致的jQuery库集(可能是版本冲突或范围冲突)。您可以隔离问题,理想情况下是jsfiddle吗?
Cee McSharpface '16

您包括哪个版本的jQuery?
yuriy636

问题是,这在Chrome中发生,并且代码在其他浏览器中也有效。不太可能发生这种情况,但您应该澄清(如果不是专门针对Chrome的问题,则不要专门谈论Chrome。)
JJJ

Answers:


185

您使用的是jQuery的精简版,其中不包含Ajax方法(在您的情况下$.post())。

使用非苗条版本,可从http://jquery.com/download/获得,例如:

https://code.jquery.com/jquery-3.5.1.min.js


jQuery 3.0发布后发布

苗条的身材

[...]有时您不需要ajax,或者您更喜欢使用许多专注于ajax请求的独立库之一。[...]以及包括ajax和effects模块的jQuery常规版本,我们正在发布一个“超薄”版本,它不包括ajax,效果和当前不推荐使用的代码。


5
非常感谢。这就是问题所在。谢谢你的时间。
Donnie Ashok

1
非常感谢!我天真地复制了bootstrap4的说明,而没有问自己到底是怎么回事slim
nicolallias

那么jQuery的“苗条”版本如何期望我们调用API调用?
阿斯凡德·卡兹

1
@AsfandQazi具有内置的API,例如FetchXMLHttpRequest,这是jQuery的$.ajax实现;或者您也可以使用专注于AJAX的库,例如axios
yuriy636

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.