响应 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)
节点选项#
选择添加选项以查看和设置选项:
- 响应代码:设置要使用的响应代码
- 响应头:定义要发送的响应头
- 将响应放入字段:当使用所有传入项或首条传入项响应时可用。设置包含响应数据的字段名称
- 启用流式传输:启用后使用流式传输将数据返回给用户。需要触发器配置为流式传输响应模式
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
查看模板详情
工作流行为#
使用"响应 Webhook"节点时,工作流行为如下:
- 工作流未执行"响应 Webhook"节点即结束:返回带 200 状态码的标准消息
- 首个"响应 Webhook"节点执行前工作流出错:返回带 500 状态码的错误消息
- 第二个"响应 Webhook"节点在首个之后执行:工作流将忽略该节点
- "响应 Webhook"节点执行但无 Webhook 触发:工作流将忽略该节点
输出发送至 Webhook 的响应#
默认情况下,"响应 Webhook"节点具有包含节点输入数据的单输出分支。
可启用第二个输出分支以包含发送至 Webhook 的响应。需在画布中打开"响应 Webhook"节点并选择设置标签页,激活启用响应输出分支选项。
节点将具备两个输出端:
- 输入数据:原始输出,传递节点输入
- 响应:发送至 Webhook 的响应对象
返回多个数据项(已弃用)#
1.22.0 版本已弃用
n8n 1.22.0 新增了使用所有传入项选项返回所有数据项的支持。n8n 建议升级至最新版本,而非使用本节所述的变通方案。
"响应 Webhook"节点仅执行一次且使用传入的首个数据项(包括使用表达式时)。无法通过 Loop 节点强制循环:工作流会运行,但 Webhook 响应仍仅包含首次执行的结果。
如需返回多个数据项,请选择以下方案之一:
- 改用 Webhook 节点响应中的当末节点完成时选项(适用于返回工作流最终输出数据)
- 使用 Aggregate 节点将多项数据合并为单项后再传递至"响应 Webhook"节点(设置聚合为所有项目数据(合并为单一列表))