Spring CORS设置

时间:2018-04-17 12:39:23

标签: java spring spring-mvc cors spring-boot-actuator

我试图让跨源头能够从任何地方(仅在本地环境中)到达服务但我不能。

@Configuration
@RequiredArgsConstructor
public class CrossOriginConfig implements WebMvcConfigurer {
    private final SecurityConfiguration securityConfiguration;

    @Override
    public void addCorsMappings(CorsRegistry registry) { 
    registry.addMapping("*").allowedOrigins(securityConfiguration.getCrossOrginFilter());
    }
}

我使用ajax调用创建了一个自定义index.html,但由于缺少Allow-Cross-Origin标头而导致它失败,并且它来自另一个来源。

Simple Spring Boot 2.0控制器与@RestController注释和简单的@GetMapping一起使用。

我错过了什么?我应该包括什么以及在哪里?

2 个答案:

答案 0 :(得分:1)

您需要在控制器类或特定方法上添加以下注释:

<强> @CrossOrigin

默认情况下,它允许使用所有原点,所有标题,@ RequestMapping注释中指定的HTTP方法和30分钟的maxAge。

如果您只想允许http://localhost:8080发送跨源请求

@CrossOrigin(originins =“http://localhost:8080”)

相应地更换主机和端口。

查看以下Spring文档以获取更多信息:

https://spring.io/guides/gs/rest-service-cors/

答案 1 :(得分:1)

Georg Wittberger指出问题在于映射。我使用*通配符对路径不利。

而不是:registry.addMapping(&#34; *&#34;)

我使用了这个:registry.addMapping(&#34; / **&#34;)并且它正常工作。