响应 Webhook
使用“响应 Webhook”节点来控制对传入 Webhook 的响应。此节点与
Webhook节点配合使用。如何使用响应 Webhook
要使用响应 Webhook 节点:
- 添加Webhook节点作为工作流的触发节点。
- 在 Webhook 节点中,设置响应使用‘响应Webhook’节点。
- 在工作流程的任意位置添加“响应 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”节点。将“聚合”设置为“所有项目数据(到单个列表中)” 。