我正在尝试在我的服务器上进行简单的表单提交,以便发布一些联系信息。我在运行服务器的node.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表示“无法访问此站点”。有人可以向我解释这里发生了什么,以及我如何简单地提交表格并留在页面上而没有任何其他问题?
答案 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;阻止您的表单尝试使用其默认方法提交。
希望这有帮助。