简体   繁体   English

在express.js中发布表单数据后,如何防止重定向?

[英]How do I prevent redirect after POSTing form data in express.js?

I've seen in other posts how to prevent a redirect on an AJAX call by returning false in the submit override method, but this doesn't work in express. 我在其他文章中已经看到了如何通过在commitoverride方法中返回false来防止AJAX调用重定向,但这在express中不起作用。 I can't figure out how to present the redirect after submitting data. 提交数据后,我不知道如何呈现重定向。 The following code executes properly, but redirects to init. 以下代码正确执行,但重定向到init。

app.js app.js

 app.post('/init', routes.init(db));

routes/index.js 路线/ index.js

exports.init = function(db){
  return function(req, res) {
    var name = req.body.name;
    var track = req.body.track;

    var collection = db.get('configs');

    collection.insert({
      "name": name,
      "track": track
    }, function (err, doc) {
      if (err) {
        res.send("Error occurred adding config to db");
      }
      else {
        res.send(200);
      }
    });
  };
};

admin.jade admin.jade

  script(type='text/javascript').
      $(document).ready(function() {
        $('#formInit').submit(function() {
          $.post('/init', 
            { name : $(this).name.value,
              track : $(this).track.value 
            }   
          );  
          return false;
        }); 
     });

    ....

    block content
      #control-panel

        form#formInit(name='init', action="/init", method="post")
          input#inputEventName(type="text", name="name", placeholder="name")
          input#inputHashtag(type="text", name="track", placeholder="track")
          button#buttonSubmit(type="submit") submit
$('formInit').on('submit', function(e) {
 e.preventDefault();

Remove the return false; 删除return false; You also don't have a class or ID specified in the selector. 您也没有在选择器中指定类或ID。 Changed the event binding to use the .on method. 将事件绑定更改为使用.on方法。

Hope this helps. 希望这可以帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM