HTML表单发布到node.js文件继续加载

时间:2017-06-12 22:39:59

标签: javascript html node.js express

我正在尝试在我的服务器上进行简单的表单提交,以便发布一些联系信息。我在运行服务器的nod​​e.js文件上成功收到信息,但在我单击提交后,页面尝试加载操作页面并最终失败。

HTML

<form id = "form" action="/", method = "post">
....
<button type="submit" form="form" value="Submit">Submit</button>
</form>

Node.js的

app.post('/', function(req, res) {
.......

我正在使用express来显示静态html和图像文件,我正在连接到localhost:8080 / MyWebsite.html。但是在我单击提交按钮后,我被重定向到localhost:8080,其中chrome表示“无法访问此站点”。有人可以向我解释这里发生了什么,以及我如何简单地提交表格并留在页面上而没有任何其他问题?

3 个答案:

答案 0 :(得分:0)

您需要提供对请求的回复。

如果您想留在网页上,则应提供204 No Content回复。

答案 1 :(得分:0)

也许你应该为app.post添加一个路径,所以你可以尝试: HTML

<form id = "form" action="/process_post", method = "post">
....
<button type="submit" form="form" value="Submit">Submit</button>
</form>

的node.js

app.post('/process_post', function(req, res) {
.......

答案 2 :(得分:-1)

基于这句话,你说:

&#34;但在我点击提交后,页面会尝试加载操作页面并最终失败。&#34;

你要做的是,你必须告诉页面&#34;提交&#34;的默认功能。按钮不会被使用,相反你会提交另一种方式。根据您的说法,当您提交表单时,它会尝试加载您在操作字段中放置的任何内容。

执行以下操作。

$('#form').submit(functions(evt){
     evt.preventDefault();

    $.post('put here the link to the api or route that handles the post here'){
        //the code you are submitting to the route here
    }
});

以上,&#34; evt.preventDefault()&#34;阻止您的表单尝试使用其默认方法提交。

希望这有帮助。