Skip to content

响应 Webhook

使用“响应 Webhook”节点来控制对传入 Webhook 的响应。此节点与Webhook节点配合使用。

对第一个数据项运行一次

响应 Webhook 节点会使用第一个传入的数据项运行一次。有关更多信息,请参阅返回多个数据项

如何使用响应 Webhook

要使用响应 Webhook 节点:

  1. 添加Webhook节点作为工作流的触发节点。
  2. 在 Webhook 节点中,设置响应使用‘响应Webhook’节点
  3. 在工作流程的任意位置添加“响应 Webhook”节点。如果您希望它从其他节点返回数据,请将其放置在这些节点之后。

节点参数

使用这些参数配置节点行为。

回复

选择要在 webhook 响应中发送的数据。

  • 所有传入项目:使用输入中的所有 JSON 项目进行响应。
  • 二进制文件:使用响应数据源中定义的二进制文件进行响应。
  • 第一个传入项目:使用第一个传入项目的 JSON 进行响应。
  • JSON :使用Response Body中定义的 JSON 对象进行响应。
  • JWT 令牌:使用 JSON Web 令牌 (JWT) 进行响应。
  • 无数据:没有响应负载。
  • 重定向:重定向到重定向 URL中设置的 URL 。
  • 文本:使用“响应正文”中设置的文本进行响应。默认情况下,将发送 HTML ( )。

节点选项

选择添加选项来查看和设置选项。

  • 响应代码:设置要使用的响应代码
  • 响应头:定义要发送的响应头。
  • 将响应放入字段:当您使用“所有传入项目”“第一个传入项目”进行响应时可用。设置包含响应数据的字段的字段名称。

n8n 如何保护 HTML 响应

n8n 1.103.0 版本开始,n8n 会自动将对 webhook 的 HTML 响应包装在标签中。这是一种保护实例用户的安全机制。

这具有以下含义:

  • HTML 在沙盒 iframe 中呈现,而不是直接在父文档中呈现。
  • 尝试访问顶级窗口或本地存储的 JavaScript 代码将会失败。
  • 沙盒化的 iframe 中不支持身份验证标头(例如,基本身份验证)。您需要使用其他方法,例如在 HTML 中嵌入短期访问令牌。
  • 相对 URL(例如)不起作用。请改用绝对 URL。

模板和示例

没有任何

工作流行为

使用响应 Webhook 节点时,工作流程如下:

  • 工作流程无需执行“响应 Webhook”节点即可完成:它返回状态为 200 的标准消息。
  • 第一个响应 Webhook 节点执行之前工作流出现错误:工作流返回状态为 500 的错误消息。
  • 第二个响应 Webhook 节点在第一个节点之后执行:工作流会忽略它。
  • 响应 Webhook 节点执行但没有 webhook:工作流忽略响应 Webhook 节点。

输出发送到 webhook 的响应

默认情况下,响应 Webhook 节点有一个包含节点输入数据的单个输出分支。

您可以选择启用第二个输出分支,其中包含发送到 Webhook 的响应。要启用此辅助输出,请打开画布上的“响应 Webhook”节点,然后选择“设置”选项卡。勾选“启用响应输出分支”选项。

该节点现在有两个输出:

  • 输入数据:原始输出,传递节点的输入。
  • Response :发送到 webhook 的响应对象。

返回多个数据项(已弃用)

在 1.22.0 中已弃用

n8n 1.22.0 增加了使用“所有传入项目”选项返回所有数据项的支持。n8n 建议升级到最新版本的 n8n,而不是使用本节中描述的解决方法。

响应 Webhook 节点使用第一个传入的数据项运行一次。这包括使用表达式的情况。您无法使用循环节点强制循环:工作流将运行,但 Webhook 响应仍将仅包含第一次执行的结果。

如果需要返回多个数据项,请选择以下选项之一:

  • 不要使用“响应 Webhook”节点,而是使用Webhook 节点中“响应”中的“当最后一个节点完成时”选项。当您希望返回工作流输出的最终数据时,请使用此选项。
  • 使用“聚合”节点将多个项目转换为单个项目,然后再将数据传递到“响应 Webhook”节点。将“聚合”设置为“所有项目数据(到单个列表中)”