Javascript jQuery表单提交到远程节点服务器API
(这是一个简短的免责声明,我认为您不需要对Javascript jQuery表单提交到远程节点服务器API,javascript,jquery,forms,node.js,Javascript,Jquery,Forms,Node.js,(这是一个简短的免责声明,我认为您不需要对Node或Express了解太多才能回答这个问题!这在jQuery表单提交结束时是一个非常重要的问题) 我在Wordpress上设置了一个表单,我想将其数据发送到我的Node.js进程。节点进程位于http://localhost:5000/agm/saveNewUser并接受POST命令,我已验证该命令是否有效。节点服务器位于Express的顶部 我无法将数据从前端表单获取到节点。表单如下所示: <form class="form-horizon
Node
或Express
了解太多才能回答这个问题!这在jQuery表单提交结束时是一个非常重要的问题)
我在Wordpress上设置了一个表单,我想将其数据发送到我的Node.js
进程。节点进程位于http://localhost:5000/agm/saveNewUser
并接受POST
命令,我已验证该命令是否有效。节点服务器位于Express
的顶部
我无法将数据从前端表单获取到节点。表单如下所示:
<form class="form-horizontal classy-form franklin-book ng-pristine ng-valid" id="signup" role="form">
<div class="form-group">
<label class="col-md-2 control-label" for="inputName">
Name </label>
<div class="col-md-10">
<input class="form-control" id="inputName" type="text" mouseev="true" keyev="true">
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" for="inputEmail">
Email
</label>
<div class="col-md-10">
<input class="form-control" id="inputEmail" type="email">
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label" for="inputLocation">
Location
</label>
<p>
</p>
<div class="col-md-10">
<input class="form-control" id="inputLocation" type="text">
</div>
</div>
<div class="radio">
<label><input id="optionsRadios1" type="radio" checked="checked" name="optionsRadios" value="option1">Start the course from Monday</label>
</div>
<div class="radio">
<label><input id="optionsRadios2" type="radio" name="optionsRadios" value="option2">Start the course from today</label>
</div>
<div class="form-group">
<div class="col-md-10">
<button id="formSubmit" class="btn btn-default" type="submit"><br>
Get in contact</button>
</div>
</div>
</form>
我的节点服务器设置为:
exports.saveNewUser = function (req, res) {
console.log("Saving a new user");
console.log(req);
console.log(res);
// These console.logs are just to debug so I can see if the form data is being posted correctly
};
目前,我的节点
控制台记录了一大堆内容,但与表单的实际输入无关。我试过:
$('#signup').ajaxForm({url: 'http://localhost:5000/agm/saveNewUser/', type: 'post', data: $('#signup').serialize()})
但是这会导致表单根本没有击中我的
节点服务器。我不知道jQuery表单插件是如何工作的,但是由于以下原因,您无法将AJAX请求发送到不同的端口。当您将jQuery表单插件从等式中去掉时会发生什么$.post(
,{foo:'foo'})代码>有记录吗?@将修复一些问题。数据现在正以{foo:'bar}
的形式进入节点的req.body
中。关于如何在此处获取表单数据的建议?下一个调试步骤:填写表单,不提交表单,然后在浏览器控制台中执行$(“#注册”).serialize()
。看起来像你期望的那样吗?对不起,我对你正在使用的表单插件一无所知。不过,不用插件就可以很容易地进行异步表单提交(如果这是问题的话)。请参阅,您不能简单地使用表单标记中的method属性将表单作为POST提交吗?您可以向任何来源发布AJAX帖子。还可以将目标服务器配置为发出CORS头,CORS头是专门为允许AJAX GET请求跨源而设计的。或者,如果支持,可以使用JSONP。
$('#signup').ajaxForm({url: 'http://localhost:5000/agm/saveNewUser/', type: 'post', data: $('#signup').serialize()})