从Wordpress表单将数据发布到NodeJS服务器

时间:2019-05-05 08:20:48

标签: javascript jquery node.js wordpress

我将Wordpress用作CMS,我想将数据从Wordpress HTML表单发送到我的NodeJS服务器进行处理。有什么可靠,可靠的方法可以实现这一目标? (NodeJS与Wordpress在单独的服务器上)

以下是我在Wordpress页面上添加的JQuery脚本:

<form id="sendForm">
 <input type="text" name="email" placeholder="E-mail">
 <button type="button" name="button" id="submitButton">submit</button>
</form>

<script type="text/javascript">
 var myNodeJSServer = "http://myNodeServer.com";
 jQuery("#submitButton").click(function() {
  jQuery.post(myNodeJSServer, jQuery("#sendForm").serialize());
 });
</script>

为此,我必须允许Node服务器中的所有源。对于生产环境来说这不安全吗?

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
});

1 个答案:

答案 0 :(得分:0)

For this to work, I had to allow all origins in the Node server. Is this not secure for a production environment?

这当然不是最佳实践;任何面向公众的Web服务器始终存在风险,因此您应始终致力于减少攻击面。在这种情况下,您绝对应该限制从哪个来源接受数据。

请参阅Access-Control-Allow-Origin的MDN文档:

res.header("Access-Control-Allow-Origin", "https://developer.mozilla.org")

我不知道您的原始域是什么,但是它应该看起来像这样。

注意:如果您的Wordpress CMS位于wordpress.com的子域中,则将子域置于您接受的来源(即mysite.wordpress.com)是非常重要的 –否则,您将接受来自任何wordpress.com网站的提交。