我在nodejs应用程序中有一个respone.send:
this.app.post('/profile', (req, res) => {
let password = req.body.password;
let newWallet = operator.createWalletFromPassword(password);
let projectedWallet = projectWallet(newWallet);
return res.send(projectedWallet);
});
每当我在html中按下按钮时,它总是会发布我的帖子并在html页面中返回JSON结果。
{"id":"f4c02f2463c8f83218f324d4193e08b8812fe914e24063217d29e65966abbe85","addresses":[]}
但我不想看到它,那么如何隐藏或重定向到另一个页面(例如我之前设置的' / profile')
编辑:这是我的客户端代码
<form action="/profile" method="post">
<p>
<% var ten = user.username %>
<strong>id</strong>: <%= user.id %><br>
<strong>username</strong>: <%= ten %><br>
<strong>password</strong>: <%= user.password %>
</p>
<p id="passwd" name="passwd" ><%= user.username %></p>
<textarea id="myTextArea" cols=50 rows=10></textarea>
<!-- these fields will be sent to server -->
<input type="hidden" name="username" value="<%= user.username %>">
<input type="hidden" name="password" value="<%= user.password %>">
<button type="submit" class="btn btn-warning btn-lg" onclick="/profile">Wallet</button>
</form>
答案 0 :(得分:0)
问题是您正在从浏览器到节点进行POST。浏览器将显示此POST的结果。
如果您不想查看JSON数据,请更改:
return res.send(projectedWallet);
类似于:
res.redirect('new url');
或:
res.render('some page');
或:
res.send('I hate json! ;)');
如果你真的想要JSON,我建议改为:
return res.send(projectedWallet);
为:
res.json(projectedWallet);
因为它设置了所有正确的标头并正确地对JSON输出进行了字符串化。
<强>更新强>
如果要创建一个将发布值的表单,然后将JSON放入文本区域,正如您在对此答案的注释中所述,那么您需要使用客户端Java脚本和AJAX调用。 / p>
有关详细信息,请参阅https://stackoverflow.com/a/46642899/1253074。