java服务器上Google App Engine中的CORS错误
我有两个应用程序 前端(角度)在Firebase上运行 后端Spring引导(Java11)在应用程序引擎上运行 尝试访问app engine中的任何终结点时出错java服务器上Google App Engine中的CORS错误,java,spring-boot,google-app-engine,google-cloud-platform,cors,Java,Spring Boot,Google App Engine,Google Cloud Platform,Cors,我有两个应用程序 前端(角度)在Firebase上运行 后端Spring引导(Java11)在应用程序引擎上运行 尝试访问app engine中的任何终结点时出错 “访问已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标题” 有趣的是,在我的本地机器上,一切都很好。cors没有问题。 所以,我想问题出在appengine或smth的配置上 有人能帮我解决这个问题吗?我已经花了很多时间试图修复它。 已经阅读了很多类似的问题。 最后一点: 在谷歌文档
“访问已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标题”
有趣的是,在我的本地机器上,一切都很好。cors没有问题。
所以,我想问题出在appengine或smth的配置上
有人能帮我解决这个问题吗?我已经花了很多时间试图修复它。
已经阅读了很多类似的问题。
最后一点:
在谷歌文档中找不到任何有用的东西
这里是我的app.yaml文件
runtime: java11
instance_class: F4
vpc_access_connector:
name: projects/<project_id>/locations/<location>/connectors/<connectors_name>
端点示例
@RestController
@RequestMapping("/test")
@AllArgsConstructor
public class TestController {
@GetMapping
public String hello() {
return "hello world";
}
}
我认为你的应用引擎yaml文件需要在处理程序中允许, 你可以用这个例子
handlers:
- url: /images
static_dir: static/images
http_headers:
Access-Control-Allow-Origin: https://frontend.firebase.url.com
您还可以使用*而不是指定允许访问的url,我想您不能使用app.yaml来控制动态处理程序的HTTP头。它仅适用于静态内容 这就是为什么此配置无法部署,映射类型脚本出现此错误
“意外属性”http\u headers。“
实例_类:F4
专有网络接入连接器:
名称:项目//位置//连接器/
处理程序:
-网址:/*
脚本:自动
http_头:
访问控制允许来源:*
我的属性中有错误的允许来源URL。因此,我的问题中的配置文件和所有cors配置都是正确的。我想这个处理程序只适用于后端的资源,而不适用于端点。
@RestController
@RequestMapping("/test")
@AllArgsConstructor
public class TestController {
@GetMapping
public String hello() {
return "hello world";
}
}
handlers:
- url: /images
static_dir: static/images
http_headers:
Access-Control-Allow-Origin: https://frontend.firebase.url.com
instance_class: F4
vpc_access_connector:
name: projects/<project_id>/locations/<location>/connectors/<connectors_name>
handlers:
- url: /.*
script: auto
http_headers:
Access-Control-Allow-Origin: *