You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Zapier以form-data格式替代JSON发送请求体?

解决Zapier发送form-data格式请求的问题

嘿,我来帮你搞定这个Zapier数据格式的问题!你的核心问题是错误设置了Content-Type头,并且没有用Zapier专门处理form-data的方式,所以后端识别不到正确的格式。

问题根源分析

你之前的代码里把Content-Type设成了application/json,这会强制Zapier以JSON格式发送请求体;另外params是用来拼接URL参数的,不是请求体里的form-data,body在Content-Type为JSON时才会被序列化成JSON字符串,这两个都不符合后端的要求。

修正后的解决方案

Zapier的z.request有专门的form字段来处理form-data(包括multipart/form-data和x-www-form-urlencoded),只要把数据放到这个字段里,Zapier会自动帮你设置正确的Content-Type并格式化请求体。

下面是修正后的完整代码:

const options = {
  url: `${bundle.inputData.URL}`, // 替换成你的后端实际地址,或者从输入数据中获取
  method: 'POST',
  headers: {
    'Authorization': `${bundle.inputData.token}`, // 确保token是正确的字符串格式
    'Accept': 'application/json' // 保留这个,因为后端返回JSON格式
  },
  form: { // 重点:用form字段存放form-data的键值对
    'phone': bundle.inputData.phone,
    'email': bundle.inputData.email,
    'dialog': bundle.inputData.dialog,
    'name': bundle.inputData.name
  }
};

return z.request(options)
  .then((response) => {
    response.throwForStatus(); // 处理请求错误
    const results = z.JSON.parse(response.content);
    return results;
  });

额外注意事项

  • 不要手动设置Content-Type为multipart/form-data,Zapier会在检测到form字段时自动添加正确的头(包括边界值),手动设置反而可能导致格式错误。
  • 测试时可以在Zapier的“测试步骤”里查看请求日志,确认请求头中的Content-Type是multipart/form-data; boundary=xxx,并且请求体是form-data格式的键值对。
  • 如果你的后端需要的是application/x-www-form-urlencoded格式,这段代码同样适用,Zapier会根据情况自动调整Content-Type。

内容的提问来源于stack exchange,提问作者Mathias Lund

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 15:12:27