解决微服务系统中配置全局CORS。
只需要在api gateway的application.properties里面配置:
spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedOrigins=*
spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedMethods=GET,POST,PUT,DELETE,OPTIONS
spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowedHeaders=*
spring.cloud.gateway.globalcors.corsConfigurations.[/**].allowCredentials=false
allowedOrigins后面可以是*,表示允许所有的origin,也可以配置具体的doman例如:http://your-frontend.com。注意:只需要在api gateway里面配置,其他后端service米面不需要在配置cros。
在单体架构架构中配置全局cors
@Configuration
public class GlobalCorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost", "http://your-frontend.com", "null") // Specify your allowed origins here
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.allowedHeaders("*")
.allowCredentials(true); // Enable credentials if needed
}
}
allowedOrigins也可以设置"*",表示允许所有的origin。
在controller或者具体的API上配置CORS
主要加在controller和具体的API上面加上注解like : @CrossOrigin(origins = “http://localhost:5000”)