Java Angular 7和Spring Boot应用程序-No';访问控制允许原点';请求的资源上存在标头
我已经在Spring Boot应用程序中向我的控制器添加了类级别的Java Angular 7和Spring Boot应用程序-No';访问控制允许原点';请求的资源上存在标头,java,angular,spring-boot,cors,allowed-origin,Java,Angular,Spring Boot,Cors,Allowed Origin,我已经在Spring Boot应用程序中向我的控制器添加了类级别的@CrossOrigin(origins=“*”)注释,当我从Angular向Spring Boot应用程序发出HTTP GET请求时(在端口9000上侦听),仍然收到此错误。这是我从Chrome得到的错误 CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头 我发现@CrossOrigin非常挑剔。您可以尝试只使用@CrossOrigin,而不使用建议的任何参数 您还可以尝
@CrossOrigin(origins=“*”)
注释,当我从Angular向Spring Boot应用程序发出HTTP GET请求时(在端口9000上侦听),仍然收到此错误。这是我从Chrome得到的错误
CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头
我发现
@CrossOrigin
非常挑剔。您可以尝试只使用@CrossOrigin
,而不使用建议的任何参数
您还可以尝试将自定义的CorsFilter
Bean添加到调用SpringApplication.run()
的类中。这样,您就可以完全控制过滤器,并可以在必要时添加/删除方法
大概是这样的:
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.setAllowedOrigins(Collections.singletonList("*"));
config.setAllowedHeaders(Arrays.asList("Origin", "Content-Type", "Accept"));
config.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE", "OPTIONS"));
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
如果更改为just CrossOrigin(),仍然会出现错误吗?是的,谢谢Alexander。现在可以了,谢谢你,马特。它起作用了。