响应 Webhook#
使用响应 Webhook 节点来控制对传入 Webhook 的响应。该节点需与 Webhook 节点配合使用。
对首个数据项执行一次
响应 Webhook 节点仅执行一次,使用第一个传入的数据项。更多信息请参阅返回多个数据项。
如何使用响应 Webhook 节点#
使用响应 Webhook 节点的步骤:
- 添加 Webhook 节点作为工作流的触发节点。
- 在 Webhook 节点中,将响应方式设置为使用"响应 Webhook"节点。
- 在工作流的任意位置添加响应 Webhook 节点。若需返回其他节点的数据,请将该节点置于那些节点之后。
节点参数#
通过以下参数配置节点行为:
响应内容#
选择在 Webhook 响应中发送的数据类型:
- 所有传入项:使用输入中的所有 JSON 项进行响应
- 二进制文件:使用在响应数据源中定义的二进制文件进行响应
- 首个传入项:使用第一个传入项的 JSON 进行响应
- JSON:使用在响应体中定义的 JSON 对象进行响应
- JWT 令牌:使用 JSON Web 令牌 (JWT) 进行响应
- 无数据:不返回响应负载
- 重定向:重定向到重定向 URL 中设置的网址
- 文本:使用在响应体中设置的文本进行响应(默认发送 HTML,即
Content-Type: text/html)
节点选项#
选择添加选项以查看和设置选项:
- 响应代码:设置要使用的 HTTP 状态码
- 响应头:定义要发送的响应头信息
- 响应数据存放字段:当选择所有传入项或首个传入项时可用。设置包含响应数据的字段名称
- 启用流式传输:启用后,使用流式传输将数据返回给用户。需要将触发节点配置为流式传输响应模式
n8n 如何保护 HTML 响应#
从 n8n 1.103.0 版本 开始,n8n 会自动将 Webhook 的 HTML 响应包装在 <iframe> 标签中。这是一种保护实例用户的安全机制。
这将产生以下影响:
- HTML 会在沙盒化的 iframe 中渲染,而不是直接在父文档中渲染
- 尝试访问顶层窗口或本地存储的 JavaScript 代码将会执行失败
- 沙盒化 iframe 中无法使用认证标头(例如基础认证)。您需要使用替代方案,例如在 HTML 中嵌入短期访问令牌
- 相对 URL(例如
<form action="/">)将无法正常工作。请改用绝对 URL
模板和示例#
创建 API 端点 作者:Jonathan 查看模板详情 创建品牌化 AI 驱动的网站聊天机器人 作者:Wayne Simpson 查看模板详情 ⚡AI 驱动的 YouTube 视频摘要与分析 作者:Joseph LePage 查看模板详情 浏览 Respond to Webhook 集成模板,或搜索所有模板
工作流行为#
使用 Respond to Webhook 节点时,工作流的行为如下:
- 工作流未执行 Respond to Webhook 节点即结束:返回状态码为 200 的标准消息
- 在第一个 Respond to Webhook 节点执行前工作流出错:工作流返回状态码为 500 的错误消息
- 在第一个节点之后执行第二个 Respond to Webhook 节点:工作流会忽略该节点
- 执行了 Respond to Webhook 节点但不存在 webhook:工作流会忽略该 Respond to Webhook 节点
输出发送至 Webhook 的响应#
默认情况下,"响应 Webhook"节点包含一个输出分支,其中包含该节点的输入数据。 您可以选择启用第二个输出分支,其中包含发送至 webhook 的响应。要启用此辅助输出,请在画布中打开"响应 Webhook"节点并选择设置标签页。激活启用响应输出分支选项。 该节点现在将具有两个输出:
- 输入数据:原始输出,传递节点的输入数据
- 响应:发送至 webhook 的响应对象
返回多个数据项(已弃用)#
自 1.22.0 版本起弃用 n8n 1.22.0 新增了使用所有传入项选项返回所有数据项的功能。n8n 建议升级至最新版本,而非使用本节所述的变通方案。 "响应 Webhook"节点仅运行一次,并使用第一个传入数据项(包括使用表达式时)。无法通过循环节点强制循环:工作流会运行,但 webhook 响应仍仅包含首次执行的结果。 如需返回多个数据项,请选择以下方案之一:
- 不使用"响应 Webhook"节点,转而在 Webhook 节点的响应中选择当最后节点完成时选项。此方案适用于返回工作流最终输出的数据
- 使用聚合节点将多个数据项合并为单个数据项,再传递给"响应 Webhook"节点。将聚合设置为所有项目数据(合并为单个列表)