如何在节点红色中进行http重定向?

时间:2018-06-13 20:29:29

标签: node-red

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

1 个答案:

答案 0 :(得分:5)

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

  1. 将响应的状态代码设置为适当的值
  2. location标头设置为要重定向到的网址。
  3. 参考HTTP Response节点的帮助,您可以直接在HTTP响应节点中设置状态代码,也可以在消息上设置msg.statusCode以传递节点。

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

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

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

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

    例如,如下所示的Function节点可以执行此操作:

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

    您也可以使用Change节点执行相同的操作:

    enter image description here