谷歌云在零实例上运行CORS飞行前错误

谷歌云在零实例上运行CORS飞行前错误,cors,google-cloud-run,keystonejs,Cors,Google Cloud Run,Keystonejs,我尝试在谷歌云上运行基于Nodejs的keystonejs后端。我让服务扩展到零实例 如果我没有击中前端一段时间,我会遇到一个CORS飞行前错误 Access to fetch at 'https://***/admin/api' from origin 'https:/***.de' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Acc

我尝试在谷歌云上运行基于Nodejs的keystonejs后端。我让服务扩展到零实例

如果我没有击中前端一段时间,我会遇到一个CORS飞行前错误

Access to fetch at 'https://***/admin/api' from origin 'https:/***.de' has been blocked by CORS 
policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow- 
Origin' header is present on the requested resource. If an opaque response serves your needs, set the 
request's mode to 'no-cors' to fetch the resource with CORS disabled.
但是,如果我在几秒钟后刷新,该站点将按预期工作。 接下来几分钟的茶点也很有效,在其他设备上也是如此

我假设该错误是由于缩减到0个实例而导致的,并且服务器的速度不够快,无法做出所需的响应

是否有可能配置云运行来处理此问题,而不使用“min instances=1”

当前cors设置

cors: {
    origin: "https://xyz.de",
    credentials: true,
    methods: ["GET", "PUT", "POST", "OPTIONS", "DELETE", "PATCH", "HEAD"],
    maxAge: 7200,
  },
添加了chrome开发工具的屏幕截图
网络负载失效

标题详细信息1

标题详细信息2

运行失败时卷曲X

ml@SurfaceBook3-ML:~$curl-X选项https://roadmaptestbackend-bchawrp2qq-ew.a.run.app/admin/api
密钥
html,
身体{
高度:100vh;
}
身体{
对齐项目:居中;
背景色:#fafbfc;
颜色:#172b4d;
显示器:flex;
弯曲方向:立柱;
字体系列:-苹果系统、BlinkMacSystemFont、“Segoe UI”、Roboto、Helvetica、Arial、,
无衬线、苹果色表情符号、Segoe UI表情符号、Segoe UI符号;
字体大小:15px;
证明内容:中心;
字母间距:-0.005em;
保证金:0;
填充:0;
文字装饰跳过:墨水;
文本呈现:优化易读性;
-ms溢出样式:-ms自动隐藏滚动条;
-moz字体功能设置:“liga”打开;
-moz osx字体平滑:灰度;
-webkit字体平滑:抗锯齿;
}
h1{
字体大小:300;
边缘底部:0.66em;
边际上限:0;
}
p{
颜色:#6c798f;
}
.集装箱{
利润上限:-4vh;
左:1米;
右侧填充:1em;
文本对齐:居中;
}
/*从Loading.io/css加载微调器*/
.上料旋转器{
显示:内联块;
高度:64px;
位置:相对位置;
宽度:64px;
}
.加载微调器>div{
动画计时功能:立方贝塞尔(0,1,1,0);
背景:#172b4d;
边界半径:50%;
高度:11px;
位置:绝对位置;
顶部:27px;
宽度:11px;
}
.加载微调器分区:第n个子项(1){
动画:加载-spinner1 0.6s无限;
左:6px;
}
.加载微调器分区:第n个子项(2){
动画:加载-spinner2 0.6s无限;
左:6px;
}
.加载微调器分区:第n个子项(3){
动画:加载-spinner2 0.6s无限;
左:26px;
}
.加载微调器分区:第n个子项(4){
动画:加载-spinner3 0.6s无限;
左:45像素;
}
@关键帧加载-喷丝头1{
0% {
不透明度:0;
变换:比例(0);
}
100% {
不透明度:1;
变换:比例(1);
}
}
@关键帧加载-喷丝头3{
0% {
不透明度:1;
变换:比例(1);
}
100% {
不透明度:0;
变换:比例(0);
}
}
@关键帧加载-喷丝头2{
0% {
变换:平移(0,0);
}
100% {
转换:转换(19px,0);
}
}
Keystone正在加载。。。
当服务器准备就绪时,此页面将重新加载

const statusEl=document.querySelector(“#status”); 让ready=false; 函数onReady(){ statusEl.innerHTML='ready!'; 就绪=正确; 位置。重新加载(true); } 函数checkAndSetStatus(){ 让取消=假; 获取('/',{headers:{Accept:'application/json'}}) .then(result=>result.json()) .catch(错误=>{ //我们可以返回一个错误“无法解析JSON”当一个HTML //返回响应,因此我们假设服务器已准备就绪 onReady(); }) 。然后({正在加载,状态}={})=>{ 如果(!加载){ onReady(); 返回; } 如果(取消){ 返回; } 开关(状态){ 案例“init keystone”:{ statusEl.innerHTML='初始化…'; 打破 } 案例“db connect”:{ statusEl.innerHTML='连接到数据库…'; 打破 } 案例“启动服务器”: 默认值:{ statusEl.innerHTML='loading…'; 打破 } } }); return()=>{ 取消=真; }; } 让cancelLastCall=checkAndSetStatus(); 常量间隔=设置间隔(()=>{ 取消调用(); 如果(准备就绪){ 间隔时间; 返回; } cancelLastCall=checkAndSetStatus(); }, 500);
您是否有关于正在发出的CORS HTTP请求的任何信息?我正试图复制这一点,但还不能。嗨@JamesWard很高兴看到你试图帮助我,因为我两周来一直在为这个问题挣扎:-)我在我的帖子中添加了开发工具网络截图,请求失败。你说的是CORS HTTP请求吗?附加信息:后端:基于nodejs的keystonejs 5前端:与apollo clientIt反应选项请求返回HTML内容很奇怪&一个200响应。发生这种情况时,响应主体中有什么?抱歉,但是我在哪里可以找到此主体信息?在我合作的网络领域