我将我的一个 Express 应用迁移到了 Firebase 函数。除了具有表单正文的 DELETE 请求外,一切都运行良好。当我直接在此 URL 上访问我的函数时
https://us-central1-[appname].cloudfunctions.net/app/api/hidden
并发送带有表单正文的删除请求,一切正常。但是当我尝试这个网址时
https://[appname].firebaseapp.com/api/hidden
它应该以相同的方式运行,我崩溃了我的应用程序,因为请求的正文为空。由于某种原因,我无法在第二个 url 上发送带有正文的 DELETE 请求。有人遇到过这个问题吗?
我的fireabse.json看起来像这样
{
"hosting": {
"rewrites":[{
"source": "**",
"function": "app"
}]
//other rules
}
}
我给Firebase支持人员发了电子邮件,他们回复了答案。基本上,Firebase 应用不支持删除请求。引用:
。将云函数与托管连接旨在提供动态内容,在您当前的实现中,我建议仅将云函数 URL 用于删除请求(以保留其他类型的请求的缓存优势)。另一种选择是不使用正文中的有效负载,因为 HTTP 1.1 规范警告使用它"在 DELETE 请求上发送有效负载正文可能会导致某些现有实现拒绝请求"。