【问题标题】:Uncaught TypeError: $.post is not a function未捕获的类型错误:$.post 不是函数
【发布时间】:2016-12-12 03:13:15
【问题描述】:

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

未捕获的类型错误:$.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

【问题讨论】:

  • 请附上minimal reproducible example,强调完成
  • 检查您的脚本标签,您是否包含一组一致的 jQuery 库(可能是版本或范围冲突)。你能把问题隔离出来吗,最好是一个 jsfiddle?
  • 你包含了哪个版本的jQuery?
  • 问题暗示这在 Chrome 中发生,并且代码在其他浏览器中有效。情况不太可能,但您应该澄清一下(如果不是专门针对 Chrome 的问题,请不要专门谈论 Chrome。)

标签: javascript jquery


【解决方案1】:

您使用的是 slim 版本的 jQuery,它不包括 Ajax 方法(在您的情况下为 $.post())。

使用non-slim build,可在此处获取http://jquery.com/download/,例如:

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


来自jQuery 3.0 release post

瘦身

[...] 有时你 不需要 ajax,或者您更喜欢使用众多独立的之一 专注于 ajax 请求的库。[...] 以及包含 ajax 和效果模块,我们正在发布一个“苗条”版本 [...],它不包括 ajax、效果和 目前已弃用的代码。

【讨论】:

  • 非常感谢!我天真地复制了 bootstrap4 的说明,没有问自己 slim 是什么。
  • 那么 'slim' 版本的 jQuery 如何期望我们调用 API 呢?
  • @AsfandQazi 带有内置 API,例如 FetchXMLHttpRequest,这是 jQuery 的 $.ajax 实现;或者您也可以使用专注于 AJAX 的库,例如 axios
【解决方案2】:

如果你使用 jquery slim 版本就会出现这个问题。使用缩小或未压缩版本的 jquery js 文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 2019-06-06
    • 2019-05-24
    • 2021-12-15
    • 2019-10-26
    • 2016-06-27
    相关资源
    最近更新 更多