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

Cloudflare Apps Webhooks无法工作,报JSON输入意外结束错误求助

解决Cloudflare实现Webhooks与Trebble通信失败的JSON解析错误

我之前也碰到过类似Cloudflare代理Webhook时和第三方服务通信失败的问题,你遇到的"unexpected end of JSON input"错误其实是很典型的请求体损坏/不完整导致的,给你梳理几个核心排查方向和解决办法:

1. 检查Cloudflare的缓存与请求改写规则

Cloudflare的默认优化规则很可能干扰了Webhook的POST请求体:

  • 给你的Webhook专属路径添加一条Page Rule,设置「缓存级别:绕过缓存」,避免Cloudflare把动态JSON请求当成静态内容缓存或截断。
  • 关闭该路径下的「自动Minify」功能,Minify对JSON内容的处理可能会破坏格式。
  • 如果开启了「Rocket Loader」,建议针对Webhook路径禁用,这个功能主要优化前端资源,会干扰POST请求的内容传输。

2. 排查请求体是否被拦截或截断

这个错误最直接的原因是服务端接收到的JSON请求体为空或不完整:

  • 在你的服务端添加日志,打印接收到的原始请求体和请求头,确认是否真的没有拿到完整内容。
  • 检查Cloudflare的**WAF(Web应用防火墙)**规则,看看有没有误拦截Webhook请求。可以临时关闭WAF测试,或者给Webhook路径添加WAF例外规则。
  • 查看Cloudflare的请求日志(Analytics > Traffic),观察请求的Request Body Size是否正常,有没有出现异常的状态码(比如4xx/5xx)。

3. 确认Content-Type请求头正确性

JSON解析失败经常和请求头不匹配有关:

  • 确认Trebble发送的Webhook请求中,Content-Type头是application/json(允许带charset参数,比如application/json; charset=utf-8)。
  • 在Cloudflare的规则中,确保没有修改或移除这个请求头,避免服务端因为头不正确而拒绝解析请求体。

4. 检查SSL/TLS配置

如果Cloudflare和你的服务端之间的SSL连接有问题,会导致请求中途中断:

  • 查看Cloudflare的SSL/TLS模式设置:如果你的服务端有有效SSL证书,选「完全」模式;如果没有,选「灵活」模式(不推荐生产环境)。
  • 确保你的服务端SSL证书没有过期,并且能被Cloudflare正常验证。

快速调试小技巧

  • 用curl模拟Trebble的Webhook请求,直接发送到你的服务端IP(绕过Cloudflare),如果能正常解析,说明问题肯定在Cloudflare的配置上;如果还是报错,那就是你服务端的JSON解析逻辑有问题。
  • 比如模拟请求命令:
curl -X POST https://your-server-domain/webhook-path \
  -H "Content-Type: application/json" \
  -d '{"test": "data"}'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:38:53