【问题标题】:How to make http redirect in node red?如何使节点红色的http重定向?
【发布时间】:2018-06-13 20:29:28
【问题描述】:

我需要重定向到另一个网址。我正在使用nodered请求一个url,然后获取用户名和密码,在cloudant数据库中检查它们,在确认它们存在之后,我需要重定向到另一个/home。 是否有要重定向的节点?我尝试使用 http 请求节点,但它只是在 json 或二进制文件中获得响应,而不是重定向 url。如何在 nodered 中重定向?

【问题讨论】:

  • 不清楚你在问什么。您是指 HTTP-in/HTTP-out 节点而不是 HTTP-request 节点吗? HTTP-in/out 节点允许 Node-RED 处理传入的 HTTP 请求,HTTP-request 节点用于调用其他服务器。

标签: node-red


【解决方案1】:

为了触发重定向,您需要做两件事:

  1. 将响应的状态码设置为适当的值
  2. location 标头设置为要重定向到的网址。

参考HTTP Response节点的帮助,可以直接在HTTP Response节点设置状态码,也可以在消息上设置msg.statusCode传递节点。

您设置的值将取决于您要执行的重定向类型 - 无论是永久重定向还是临时重定向。

例如,一种常见的模式是将创建资源的 POST 请求重定向到新资源的 GET 请求。那将是使用303 作为状态码的临时重定向。

This 是不同类型重定向代码的一个很好的参考。

要设置 Location 标头,您可以再次在 HTTP 响应节点中对其进行硬编码,或者将其设置在 msg.headers 属性下。

例如,如下所示的 Function 节点可以做到这一点:

msg.statusCode = 303;
msg.headers = {
    Location: "https://google.com"
}
delete msg.payload;
return msg;

您也可以使用 Change 节点来做同样的事情:

【讨论】:

  • 函数节点示例的最后一行应该是return msg;
  • 感谢@JasonWood - 已修复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-07
  • 1970-01-01
相关资源
最近更新 更多