firebase - 自定义域的 Firebase HTTP 到 HTTPS NGINX 重定向丢弃 GET 的 POST 方法
问题描述
Firebase 无法将任何 HTTP POST 请求重定向到 HTTPS POST。前任:
POST / HTTP/1.1 主机:apis.mydomain.com
由 Firebase NGINX 重定向到
GET / HTTP/1.1 主机:apis.mydomain.com
如果你对 https 很明确,那么 NGINX 可以正常工作:POST -> POST
因此,当请求到达 Firebase 托管,并将您的请求重定向到可由 https 端点访问的 firebase 函数时,该方法有可能从 POST 方法折叠为 GET。
仔细观察标题,在 Firebase Cloud Function 内部,协议始终表示为 http,而不是 https。
我假设这是一个我无法修改的内部问题,但是,这对我正在做的事情来说是一个问题,而且这绝对是一个问题,因为我无法修改处理我的 http(s) 请求的 NGINX。
解决方案
如果您使用 301 或 302 状态代码重定向,则 POST 将降级为 GET。
您需要使用 307 状态来维护跨重定向的 POST。有关详细信息,请参阅此文档。
在 Nginx 上,您将需要使用return
语句。例如:
return 307 https://$host$request_uri;
推荐阅读
- flutter - 由于依赖项不支持 null 安全性,因此无法以可靠的 null 安全性运行
- php - PHP PDFMerger - 未捕获的错误:找不到类“PDFMerger\exception”
- python - 我如何将我的 matplotlib 动画图与烧瓶 web ui 集成
- vue.js - 用玩笑替换默认导出对象
- java - 在Java中,如果对象包含相同对象类型的列表,如何对其进行递归排序
- php - 如果值为空,则移动设备上的滑块图像更改选择桌面图像
- python - imshow 图片太小
- android - Google Android ML Kit 在对象检测期间仅提供类别
- python - 将时间戳转换为日期并仅将日期保留在 pandas 列内的列表中
- reactjs - 导入不起作用并且找不到 React 文件