【问题标题】:Successful POST request pending成功的 POST 请求待处理
【发布时间】:2016-04-13 08:13:33
【问题描述】:

我正在使用 node.js 构建一个应用程序。我的一个页面调用 POST 请求将数据发送到我的数据库。 POST 请求成功并且数据进入我的数据库,但是当我检查请求的状态(Chrome 开发工具 > 网络)时,它显示 POST 请求的状态为“待处理”。有谁知道这可能是为什么?这是我的 POST 请求:

     $.ajax({
        url: "/addreport/ + data.projectId",
        type: "POST",
        data: data,
        success: function() {
          alert("Thank you for subscribing!");
        },
        error: function() {
          alert("There was an error. Try again please!");
        }
      }); 

这对我很重要,因为我需要成功回调来告诉用户 POST 请求成功。

提前致谢!

【问题讨论】:

  • 您是否发送大量数据?听起来请求没有响应。
  • 这个"/addreport/ + data.projectId" 应该是"/addreport/" + data.projectId 吗?
  • Dave Goten 提出了一个很好的观点。如果这不是问题,请确保您响应 node.js 端的请求(例如req.end()
  • 您使用什么机制将信息放入数据库?听起来管理请求的任何东西都不会在完成后发回信息。
  • 知道了 - 我现在没有回复....谢谢大家!

标签: jquery ajax node.js post


【解决方案1】:

问题可能是您没有发回响应。这是一个使用节点route模块的小示例代码:

    router.post('/', function (req, res) {
      res.set('Content-Type', 'application/json');
      var jsonData = JSON.stringify(req.body);
      res.status(201);
      res.json();
    });

res.status(201); - 以“已创建”的形式发回响应。

res.json(); - post请求完成后发回一些json数据。

【讨论】:

  • 要添加到 @Tomas 的回复中,您可以通过执行 return res.status(201).json(req.body) 来简化事情,如此处 expressjs.com/en/4x/api.html#res.json 所示,是的,您很可能没有“结束”回复。跨度>
  • 我真的很苦恼,我的 ajax POST 请求通过猫鼬插入数据,解决方案是使用res.status(201).end() 定义适当的回调。感谢您的有用回答
猜你喜欢
  • 2014-05-06
  • 2012-04-11
  • 2019-11-09
  • 2011-03-16
  • 2016-08-04
  • 2021-04-09
  • 1970-01-01
  • 2015-08-30
  • 2010-12-08
相关资源
最近更新 更多