我的最终目标是在单击按钮时向 node.js 发送任意 JSON。我目前只知道如何从表单发送输入。这是我放在一起发送表单信息的一些代码:
function postForm() {
$('form').submit(function(e) {
e.preventDefault(); // no page reload
$.post(
$(this).attr('action'),
$(this).serialize(),
function(data) { console.log('Code for handling response here.') },
'json'
);
});
}
HTML 的外观如下:
<form action='/send' method='post'>
<input name= "foo" type="radio" value=1>
<input type="submit" value="Submit">
</form>
相关的 express/node.js 代码如下所示:
app.post('/send', function(request, response) {
fs.appendFile('test.txt', JSON.stringify(request.body) + '\n', function(e) {
if(e) throw e;
console.log(request.body);
});
});
但是,我不知道如何调整此示例以使用不是来自表单输入的数据。为了提供上下文,我正在构建一个基于 Web 的用户研究,并且我想将收集到的有关用户的各种信息发送到 node.js。我已经尝试了表单提交的各种变体,但我的尝试都没有成功。我的印象是我可以换成$(this).serialize()
客户可以访问的任何其他数据,但我无法让这种思路发挥作用。我还尝试更改许多示例中的一些.ajax()
示例,但这些示例总是重定向页面,这是不可取的,因为如果页面刷新,我的研究将丢失用户状态信息。
我已经完成了大量的客户端和服务器端编程,但我对 ajax 的工作原理几乎一无所知,这证明解决这个问题相当有问题!而且也很愚蠢,因为很多时候,这就是将两者粘合在一起的原因:)