我想要的是当用户点击提交按钮时,将发送到服务器的电子邮件字段然后返回结果(如果是否保存在DB中的电子邮件)在同一页面上。
我的代码:
<form id="mc-form" action="http://local_host:8081/ttttt" method="post" enctype="multipart/form-data">
<input type="email" value="" name="dEmail" class="email" id="mc-email" placeholder="type email & hit enter" required="">
<input type="submit" name="subscribe" >
<label for="mc-email" class="subscribe-message"></label>
</form>
但是,除非我从上面的代码中删除id="mc-form"
,否则值不会传递给服务器。如果我删除了id="mc-form"
,那么会显示一个包含操作结果的新页面。但是,我只想在同一页面上显示结果。
节点JS代码如下:
app.post('/ttttt', function (req,res){
console.log('Came in');
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
//Store the data from the fields in your data store.
//The data store could be a file or database or any other store based
//on your application.
res.writeHead(200, {
'content-type': 'text/plain'
});
res.write('received the data:\n\n');
res.end(util.inspect({
fields: fields
}));
});
});
答案 0 :(得分:0)
有两种方法:
1)您可以在渲染页面时传递结果参数。然后你可以通过html中的EJS读取数据。
2)其次是你可以在jquery中使用ajax调用来从服务器获取响应数据而不刷新页面。
您上面的代码会将json数据返回到一个新的空白页面,而不会执行任何其他操作。