Angular调用Spring Boot Actuator健康端点遇CORS错误求助
解决Spring Boot Actuator端点的CORS问题
问题原因
Spring Boot Actuator的端点不遵循Spring MVC的addCorsMappings配置,它有独立的CORS配置机制,所以你之前在addCorsMappings里添加的/actuator/**映射不会生效。
解决方案
1. 清理冗余的Spring MVC CORS配置
移除当前addCorsMappings中针对/actuator/**的配置块,同时修复重复设置allowedHeaders的问题:
public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") .allowedHeaders("*") .allowedOrigins("*") .maxAge(MAX_AGE_SECS); }
2. 配置Actuator专属的CORS规则
在application.yml中添加Actuator的CORS配置,这才是对Actuator端点生效的配置:
management: endpoint: health: probes: enabled: true show-details: always web: exposure: include: '*' # 新增Actuator的CORS配置 cors: allowed-origins: "http://localhost:4200" # 建议指定具体域名,若需携带凭证不能用* allowed-methods: "GET,OPTIONS" allowed-headers: "*" max-age: 3600 health: liveness-state: enabled: true readiness-state: enabled: true
3. 额外注意事项
- 如果请求需要携带凭证(如Cookie),
allowed-origins不能使用通配符*,必须指定前端具体域名,同时Angular请求要设置withCredentials: true。 - 重启Spring Boot应用确保配置生效。
内容的提问来源于stack exchange,提问作者Adolf Simelane
相关产品推荐
相关产品推荐

