跳到主要内容

响应 Webhook#

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

仅对首条数据项执行一次

"响应 Webhook"节点仅执行一次,且使用传入的首个数据项。更多信息请参阅返回多个数据项

如何使用响应 Webhook#

使用"响应 Webhook"节点的步骤:

  1. 添加 Webhook 节点作为工作流的触发器节点。
  2. 在 Webhook 节点中,将响应设置为使用'响应 Webhook'节点
  3. 在工作流任意位置添加"响应 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"节点时,工作流行为如下:

  • 工作流未执行"响应 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"节点(设置聚合所有项目数据(合并为单一列表)