繁体   English   中英

node.js / express发出post请求而不从当前页面重定向

[英]node.js/express making post request without redirecting from current page

我有一个node.js表达应用程序,它试图发布一个post请求并查询数据库的内容。 我正在尝试执行post请求,而不必从表单页面重定向用户或重新加载页面。

index.jade

form.well(id="newEntryForm", method="post", action="/addEntry")
    label Key:
    br
    input(name="key", id="key", class="new-entry", type="textbox")
    br
    br
    label Value:
    br
    input(name="value", id="value", class="new-entry", type="textbox")
    br
    br
    button.btn(type="submit") Add Entry

app.js

app.post('/addEntry', function(req, res){
   //database query
});

这最终会将我重定向到URL localhost:3000/addEntry 我知道我可以添加res.redirect("/"); 在post方法的回调中,但是会重新加载页面。 如何在不重新加载页面的情况下完成此操作?

编辑

我在提交表单时添加了一个javascript方法来执行,但最终会在URL栏上附加POST请求参数。 我该如何避免这种情况?

Javascript方法

$(function() {
    $('#newEntryForm').submit(function() {
        var data = {key: 'a', value: 'b'};
        // build a json object or do something with the form, store in data
        $.post('/addRule', data, function(resp) {
            alert(resp);
            console.log("post response: " + resp);
            // do something when it was successful
        });
    });
});

正如评论所说,你需要使用客户端javascript + ajax。

$(function() {
    $('#newEntryForm').submit(function(event) {
        event.preventDefault(); // Stops browser from navigating away from page
        var data;
        // build a json object or do something with the form, store in data
        $.post('/addEntry', data, function(resp) {
            alert(resp);
            // do something when it was successful
        });
    });
});

暂无
暂无

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

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