我正在部署一个使用Firebase托管的前端网站和一个使用云运行托管容器的nodejs后端API。
我正在使用Firebase重写将所有API调用重定向到云运行服务,以便我可以从mydomain.com/api/*访问api
"rewrites": [
{
"source": "/api/**",
"run": {
"serviceId": "*****",
"region": "******"
}
}
],我使用的是Hapi js框架,并且我将cors设置为对服务器配置中的所有源开放
routes : {
cors : { origin: ["*"] },
}当我对本地的/api/ping和/api/check/{id} (windows上的本地容器)等测试路由进行Get调用时,使用谷歌分配给托管容器的URL或使用与firebase托管关联的自定义域,我得到了预期的200响应。
当我尝试向/api/contact发送POST时,收到连接超时或来自Firebase的502 Bad Gateway (超时限制为60s)。
我不明白为什么它甚至不能与我在本地运行的容器一起工作?当我运行nodejs应用程序时,POST app响应良好。为什么是Gets而不是Posts?
谢谢
发布于 2021-11-28 14:10:25
这是Node.js版本16的Hapi.js (HttpAPI)错误。
正如@Lemalach提到的,工作站代码在Node.js 12上,容器在Node.js 16版本上。
使用Node.js 16将Hapi.js响应设置为null。
切换到Node.js 12解决了这个问题。
https://stackoverflow.com/questions/70116549
复制相似问题