Рубрики
Без рубрики

Пружинный ботинок : Включить CORS

Если у вас есть клиентское приложение, работающее на http://localhost:4200 и он делает запрос к API, написанному весной… Помеченный как java, spring boot.

Если у вас есть клиентское приложение, запущенное на 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”