跳转至

响应 Webhook#

使用 Respond to Webhook 节点来控制对传入 webhook 的响应。此节点与 Webhook 节点配合使用。

为第一个数据项运行一次

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

如何使用 Respond to Webhook#

要使用 Respond to Webhook 节点:

  1. 添加 Webhook 节点作为工作流的触发器节点。
  2. 在 Webhook 节点中,将 Respond 设置为 Using 'Respond to Webhook' node
  3. 在工作流中的任何位置添加 Respond to Webhook 节点。如果您希望它返回来自其他节点的数据,请将其放在这些节点之后。

节点参数#

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

Respond With#

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

  • All Incoming Items:使用来自输入的所有 JSON 项目进行响应。
  • Binary File:使用在 Response Data Source 中定义的二进制文件进行响应。
  • First Incoming Item:使用第一个传入项目的 JSON 进行响应。
  • JSON:使用在 Response Body 中定义的 JSON 对象进行响应。
  • JWT Token:使用 JSON Web Token (JWT) 进行响应。
  • No Data:无响应载荷。
  • Redirect:重定向到在 Redirect URL 中设置的 URL。
  • Text:使用在 Response Body 中设置的文本进行响应。默认情况下发送 HTML (Content-Type: text/html)。

节点选项#

选择 Add Option 来查看和设置选项。

  • Response Code:设置要使用的响应代码
  • Response Headers:定义要发送的响应头。
  • Put Response in Field:当您使用 All Incoming ItemsFirst Incoming Item 进行响应时可用。设置包含响应数据的字段的字段名称。

n8n 如何保护 HTML 响应#

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

这具有以下影响:

  • HTML 在沙盒化的 iframe 中渲染,而不是直接在父文档中渲染。
  • 试图访问顶级窗口或本地存储的 JavaScript 代码将失败。
  • 身份验证头在沙盒化的 iframe 中不可用(例如,基本身份验证)。您需要使用替代方法,比如在 HTML 中嵌入短期访问令牌。
  • 相对 URL(例如,<form action="/">)将不起作用。请使用绝对 URL。

模板和示例#

Creating an API endpoint

by Jonathan

View template details
Create a Branded AI-Powered Website Chatbot

by Wayne Simpson

View template details
⚡AI-Powered YouTube Video Summarization & Analysis

by Joseph LePage

View template details
Browse 响应 Webhook integration templates, or search all templates

工作流行为#

使用 Respond to Webhook 节点时,工作流行为如下:

  • 工作流在未执行 Respond to Webhook 节点的情况下完成:它返回带有 200 状态的标准消息。
  • 在第一个 Respond to Webhook 节点执行之前工作流出错:工作流返回带有 500 状态的错误消息。
  • 第二个 Respond to Webhook 节点在第一个之后执行:工作流忽略它。
  • Respond to Webhook 节点执行但没有 webhook:工作流忽略 Respond to Webhook 节点。

输出发送给 webhook 的响应#

默认情况下,Respond to Webhook 节点具有包含节点输入数据的单个输出分支。

您可以选择启用包含发送给 webhook 的响应的第二个输出分支。要启用此辅助输出,请在画布上打开 Respond to Webhook 节点并选择 Settings 选项卡。激活 Enable Response Output Branch 选项。

该节点现在将有两个输出:

  • Input Data:原始输出,传递节点的输入。
  • Response:发送给 webhook 的响应对象。

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

在 1.22.0 中已弃用

n8n 1.22.0 添加了使用 All Incoming Items 选项返回所有数据项的支持。n8n 建议升级到最新版本的 n8n,而不是使用本节中描述的解决方案。

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

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

  • 不使用 Respond to Webhook 节点,而是在 Webhook 节点的 Respond 中使用 When Last Node Finishes 选项。当您要返回工作流输出的最终数据时使用此选项。
  • 使用 Aggregate 节点在将数据传递给 Respond to Webhook 节点之前将多个项转换为单个项。将 Aggregate 设置为 All Item Data (Into a Single List)
此页面是否
💬 微信

🚀 与作者交流

关注公众号
n8n实战笔记公众号
n8n实战笔记
📚 教程 💡 案例 🔧 技巧
添加微信
添加作者微信
1对1 专业指导
⚡ 快答 🎯 定制 🚀 支持