endpoints.cors.allowed-origins
对于 Spring boot 1 或management.endpoints.web.cors.allowed-origins
Spring boot 2 用于将 CORS 应用于 Actuator 端点,它不适用于您定义的控制器端点。
实际上,默认情况下 Spring boot 不会设置任何 CORS 标头。如果您看到Access-Control-Allow-Origin
一个值(例如通配符),这意味着您正在自己的代码中的某个地方配置它。验证您是否在@CrossOrigin
控制器上使用,或者您正在使用某种Filter
(例如CorsFilter
)。
在 Spring Boot 中全局配置 CORS 的一种方法是定义一个CorsFilter
bean,例如:
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.setAllowedOrigins(List.of("https://example.com"));
config.setAllowedHeaders(List.of("Origin", "Content-Type", "Accept"));
config.setAllowedMethods(List.of("GET", "POST", "PUT", "OPTIONS", "DELETE", "PATCH"));
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
对于其他可能性,您可以检查这个问题。请注意,这只有在您找出导致Access-Control-Allow-Origin
设置的原因时才能正常工作。