解决Directus Flows Webhook请求"INVALID_PAYLOAD"错误的BUG
Directus的Flows做自动化的过程中遇到个奇葩的bug折磨了我好几个小时。
事情的经过是这样的,使用endpoint建立了一个路由作为flow中的webhook请求,使用ApiTester测试一切正常,但是在服务端后台无论如何都无法发起请求,得到的都是400错误。
而查看Nginx日志发现API服务端根本没有接收到这个请求,这让我意识到请求被中途拦截了,这导致花了大量无效时间分析cloudflare端和服务端Nginx和Directus的请求保护机制。
在Flow中错误的日记如下:
{ "status": 400, "statusText": "Bad Request", ... ... "data": { "errors": [ { "message": "Invalid payload. Unexpected token n in JSON at position 0.", "extensions": { "reason": "Unexpected token n in JSON at position 0", "code": "INVALID_PAYLOAD" } } ] } }
原因分析
直到看到ApiTester中的这个提示
再根据上面的错误信息,很明显是因为没有payload
的数据,请求直接被拒绝掉了,这时候我们只需要在Request Body
中加上个{}
,尽管它毫无意义
再次测试 一次同通过。