Если у вас есть клиентское приложение, запущенное на http://localhost:4200
и он делает запрос к API, написанному в Spring Boot, который выполняется на http://localhost:8080
, Вы должны получить приведенную ниже ошибку, поскольку клиентское приложение и API имеют разное происхождение (домен, протокол или порт).
Access to XMLHttpRequest at 'http://localhost:8080/hello' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Вы можете решить эту проблему, включив CORS в Spring Boot.
- На уровне класса или метода
@RestController public class MainController { @CrossOrigin(origins = "http://localhost:4200") @GetMapping("/hello") public User hello() throws Exception { return User.builder().name("Mac").build(); } }
- Глобальный
@Configuration public class WebConfig { @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedOrigins("http://localhost:4200"); } }; } }
Оригинал: “https://dev.to/mackittipat/spring-boot-enable-cors-4k5f”