使用 wordpress 上的按钮控制 Node-Red,HTTP Get

问题描述

所以,我正在做一些事情,我需要在我的 wordpress 网站上使用一个按钮来控制节点红色。做了一些研究,看起来http是要走的路。问题是,我对此一无所知。所以我设法通过将以下内容放入浏览器来向节点 red 发送一个值-

本地主机:1880/test/?value=1

这里是流程-

[{"id":"a247c8e.caffb38","type":"tab","label":"Flow 2","disabled":false,"info":""},{"id":"93b2ec9.0acfa1","type":"debug","z":"a247c8e.caffb38","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targettype":"msg","x":470,"y":160,"wires":[]},{"id":"a3129f89.1dfe3","type":"http in","url":"test","method":"get","upload":false,"swaggerDoc":"","x":160,"wires":[["93b2ec9.0acfa1"]]}]

但现在我卡住了。 2个问题-

1- 如果我只是将该链接放在网站上的按钮中,它会起作用,但它会尝试转到该网站,然后出现错误。我不想去那个网站,我想留在按钮所在的网站上。我是否需要发送某种类型的 http 响应来说“知道了,现在留在同一个站点上”或其他什么?怎么样?

2- 如何从另一个网络进行这项工作?我需要做类似的事情吗-

publicIP/localIP/port/test/?value=1

类似的东西?

非常感谢您的帮助!

解决方法

  1. 您需要使用 Javascript 从 Wordpress 页面发出请求。您可以将 onclick 侦听器附加到按钮,然后使用 XMLHttpRequest 触发侦听器。网上有很多使用 XMLHttpRequest 的例子。

  2. 假设您在家庭网络内的设备上运行 Node-RED,那么您需要在路由器上设置某种形式的端口转发,以将 Node-RED 实例暴露给外部。在执行此操作之前,您必须启用管理员身份验证,这将需要用户名/密码才能访问 Node-RED 编辑器。否则,您将面临黑客获得访问权限并安装加密矿工的风险。

    如果您希望互联网上的任何人都可以使用静态 IP 地址或动态 DNS 解决方案,您还需要一个静态 IP 地址或动态 DNS 解决方案。