SpringBootでクロスオリジンリソース共有を実装するにはどうすればいいですか?
SpringBootでCORS(Cross-Origin Resource Sharing)を実装する方法はいくつかありますが、よく使用される方法の1つは次のとおりです:
- SpringBootの設定クラスにクロスオリジン設定を追加してください。
@Configuration
public class CorsConfig {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*") // 允许所有域名访问,也可以指定特定域名
.allowedMethods("GET", "POST", "PUT", "DELETE") // 允许的请求方法
.allowedHeaders("*") // 允许的请求头
.allowCredentials(true) // 是否允许发送 Cookie
.maxAge(3600); // 探测请求的有效期
}
};
}
}
このコードは、すべてのドメインへのアクセスを許可し、Cookieの送信を許可します。実際の要件に応じて設定を調整できます。
- @CrossOriginアノテーションを使用します。
Controller層のメソッドに@CrossOrigin注釈を追加すると、クロスオリジンリソース共有が実現できます。例えば:
@RestController
public class MyController {
@CrossOrigin(origins = "*", maxAge = 3600)
@GetMapping("/hello")
public String hello() {
return "Hello, world!";
}
}
実際のプロジェクトでは、必要に応じて適切な方法を選択できますが、上記はCORSを実現するための一般的な2つの方法です。