【问题标题】:Sending post request to nodejs using jQuery使用 jQuery 向 nodejs 发送 post 请求
【发布时间】:2019-05-13 01:11:49
【问题描述】:

我正在尝试向 nodejs 服务器发送 post 请求,但我遇到了错误。

我的 .js 文件中有这段代码

var 数据 = { 名字:“ABC”, 姓氏:“ABC”}

var jax = $.post('/update', { data: data });

在 nodejs 服务器中,我有这个代码

app.post('/update', function(req, res){
    console.log('body: ' + JSON.stringify(req.body));

    var obj = req.body.data;
    console.log("obj is " + JSON.stringify(obj));
    // res.send(req.body);
})

;

每次我运行程序我都会收到这个错误提示 "$.post is not a function"

【问题讨论】:

  • 基于错误,我假设您对 jQuery 的使用有疑问。您是否在客户端页面上加载 jQuery?试试 jQuery.post(....) 或者在你的头脑中添加 jQuery 库。
  • 我在我的 HTML 中添加了 jQuery,我也尝试使用 jQuery.post 但它不起作用
  • 你有没有加载其他库,你确定在jQuery加载后执行$.post吗?你在哪里执行 $.post?
  • 您使用的是精简版 Jquery,因为 Ajax 不是精简版 jquery 的一部分。您需要使用 jquery 的缩小版或未压缩版。
  • 我还添加了 bootstrap 和 mapbox 的库,我的 .post 是在所有文档加载后执行的。里面 $(document).function(){ // 代码 }

标签: jquery html node.js ajax post


【解决方案1】:

错误听起来好像$.post 未定义。因此,当您尝试调用它时,JS 错误为 undefined 不是函数。 如果我在没有导入 jquery 的新选项卡上打开控制台,则会发生相同的错误。

要使用 jquery,您需要导入源代码。 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

【讨论】:

  • 我的 HTML 文件中添加了该脚本,但错误仍然存​​在
  • 你能通过名称而不是使用 $ 快捷方式访问 jquery 和 post 方法吗?
  • 你显然没有正确导入 jQuery。
【解决方案2】:

根据您给出的答案在

内执行您的$.post
$(document).ready(function() {
  // if you want to execute the post request after your DOM is ready
});

$(window).on("load", function() { 
  // when your page is fully loaded
});

确保您导入了正确版本的 jQuery,并且您没有绑定在您尝试访问 jQueries post() 的全局命名空间上的冲突库。收到该错误消息可能没有其他原因。

它只是表示对于$ - 您访问 jQuery 的命名空间 - 不存在您要调用的函数。

【讨论】:

    猜你喜欢
    • 2021-08-14
    • 2018-08-19
    • 2018-05-04
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多