Firebase 无法将任何 HTTP POST 请求重定向到 HTTPS POST。例如:
POST/HTTP/1.1 主机:apis.mydomain.com
由 Firebase NGINX 重定向到
获取/HTTP/1.1 主机:apis.mydomain.com
如果你对 https 明确,那么 NGINX 可以正常工作:POST -> POST
因此,当请求到达 Firebase 托管并将您的请求重定向到可通过 https 端点访问的 Firebase 函数时,该方法有可能从 POST 方法折叠为 GET。
仔细查看 Firebase 云功能内部的 header ,协议(protocol)始终表示为 http,而不是 https。
我假设这是一个我无法修改的内部问题,但是,这是我正在做的事情的一个问题,而且这绝对是一个问题,因为我无法修改正在处理我的 http(s) 请求的 NGINX .
最佳答案
如果您使用 301 或 302 状态代码进行重定向,POST 将降级为 GET。
您需要使用 307 状态来维护跨重定向的 POST。请参阅this document了解详情。
在 Nginx 上,您需要使用 return
语句。例如:
return 307 https://$host$request_uri;
关于Firebase HTTP 到 HTTPS NGINX 重定向自定义域,删除 GET 的 POST 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55933327/