2016-03-25 18 views
1

Ich habe meinen Server läuft auf localhost: 8080 (Spring Boot App) und mein Frontend auf localhost: 3000 (angular app). Das Problem ist, dass ich eine Anfrage vom Frontend an meinen Backend-Server stellen möchte. Ich bin vertraut mit Kors, aber es funktioniert nicht von mir. Ich habe diese auf meinem Server:Spring boot - cors funktioniert nicht

@Bean 
WebMvcConfigurer corsConfigurer() { 
    return new WebMvcConfigurerAdapter() { 
     @Override 
     public void addCorsMappings(CorsRegistry registry) { 
      registry.addMapping("/**").allowedOrigins("http://localhost:3000"); 
     } 
    }; 
} 

, aber ich bekomme immer noch

XMLHttpRequest nicht http://localhost:8080/cars laden kann. Die Anforderung wurde an "http://localhost:8080/login" umgeleitet, was für Anfragen mit Ursprung über Kreuz, die Preflight erfordern, nicht zulässig ist.

Was ist los?

Antwort

0

Laut dem offiziellen Blogartikel CORS support in Spring Framework, wenn Sie Spring Security aktiviert haben, müssen Sie filter based CORS support verwenden.

@Configuration 
public class MyConfiguration { 

    @Bean 
    public FilterRegistrationBean corsFilter() { 
     UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); 
     CorsConfiguration config = new CorsConfiguration(); 
     config.setAllowCredentials(true); 
     config.addAllowedOrigin("http://domain1.com"); 
     config.addAllowedHeader("*"); 
     config.addAllowedMethod("*"); 
     source.registerCorsConfiguration("/**", config); 
     FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source)); 
     bean.setOrder(0); 
     return bean; 
    } 
} 
Verwandte Themen