响应 Webhook#
使用 Respond to Webhook 节点来控制对传入 webhook 的响应。此节点与 Webhook 节点配合使用。
为第一个数据项运行一次
Respond to Webhook 节点运行一次,使用第一个传入的数据项。有关更多信息,请参阅返回多个数据项。
如何使用 Respond to Webhook#
要使用 Respond to Webhook 节点:
- 添加 Webhook 节点作为工作流的触发器节点。
- 在 Webhook 节点中,将 Respond 设置为 Using 'Respond to Webhook' node。
- 在工作流中的任何位置添加 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 Items 或 First Incoming Item 进行响应时可用。设置包含响应数据的字段的字段名称。
n8n 如何保护 HTML 响应#
从 n8n 版本 1.103.0 开始,n8n 自动将对 webhook 的 HTML 响应包装在 <iframe>
标签中。这是一个保护实例用户的安全机制。
这具有以下影响:
- HTML 在沙盒化的 iframe 中渲染,而不是直接在父文档中渲染。
- 试图访问顶级窗口或本地存储的 JavaScript 代码将失败。
- 身份验证头在沙盒化的 iframe 中不可用(例如,基本身份验证)。您需要使用替代方法,比如在 HTML 中嵌入短期访问令牌。
- 相对 URL(例如,
<form action="/">
)将不起作用。请使用绝对 URL。
模板和示例#
工作流行为#
使用 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实战笔记
📚 教程 💡 案例 🔧 技巧
📚 教程 💡 案例 🔧 技巧
添加微信

1对1 专业指导
⚡ 快答 🎯 定制 🚀 支持
⚡ 快答 🎯 定制 🚀 支持