express使用ajax提交表单失败,app.post无效

发布于 2022-09-07 11:35:53 字数 782 浏览 10 评论 0

代码

// 在模板文件发起ajax提交表单的请求
$.ajax({
  url: '/process',
  type: 'POST',
  data: $(this).serialize(),
  success: function(data) {
    if (data.success) {
      $container.html('<h2>Thank you!</h2>');
    } else {
      $container.html('There was a problem.');
    }
  },
  error: function() {
    $container.html('There was a problem!');
  }
});
// 在app.js中使用app.post做处理
app.post('/process', function(req, res){
    if(req.xhr || req.accepts('json,html')==='json'){
        res.send({ success: true });
    } else {
        res.redirect(303, '/thankyou');
    }
});

然而,结果却是:There was a problem!
打开FF,显示的是:

clipboard.png
明明使用了app.post做请求处理了,哪里出错了呢?如何解决?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

游魂 2022-09-14 11:35:53

错误把app.post放在了app.use(req, res, next)中间件函数后面,导致app.post无法处理post请求。解决方法:只要把app.post放在中间件函数之前就可以了。后续的理解:只要返回了404,就应该想到是“请求的东西,你没有给我”。因此一般来说都是处理请求那一块代码出错了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文