我试图让跨源头能够从任何地方(仅在本地环境中)到达服务但我不能。
@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一起使用。
我错过了什么?我应该包括什么以及在哪里?
答案 0 :(得分:1)
您需要在控制器类或特定方法上添加以下注释:
<强> @CrossOrigin 强>
默认情况下,它允许使用所有原点,所有标题,@ RequestMapping注释中指定的HTTP方法和30分钟的maxAge。
如果您只想允许http://localhost:8080发送跨源请求
@CrossOrigin(originins =“http://localhost:8080”)
相应地更换主机和端口。
查看以下Spring文档以获取更多信息:
答案 1 :(得分:1)
Georg Wittberger指出问题在于映射。我使用*通配符对路径不利。
而不是:registry.addMapping(&#34; *&#34;)
我使用了这个:registry.addMapping(&#34; / **&#34;)并且它正常工作。