2017-11-02 2 views
0

Nach this Spring tutorial Ich habe die folgende Bean meiner Konfigurationslogik hinzugefügt. Beachten Sie, dass ich Spring Boot verwende.CORS semi arbeiten zwischen Angular App und Spring Backend

Wenn Sie Frühlings-Boot verwenden, empfiehlt es sich, nur eine WebMvcConfigurer Bohne zu erklären, wie folgend:

@Bean 
public WebMvcConfigurer corsConfigurer() { 
    return new WebMvcConfigurer() { 
     @Override 
     public void addCorsMappings(CorsRegistry registry) { 
      registry.addMapping("/**") 
        // Just slightly modified 
        .allowedMethods("HEAD", "GET", "PUT", "POST", 
            "DELETE", "PATCH", "OPTIONS") 
        .allowedOrigins("*") 
        .allowedHeaders("*"); 
     } 
    }; 
} 

Hier ist das Ding: Ich bin in der Lage einen Benutzer aus der Client-Seite zu registrieren:

onSubmit() { 
    this.http.post('http://localhost:8080/register', this.registerForm.value) 
    .subscribe(
     data => this.onRegisterSuccess(), 
     err => alert(err.error.message) 
    ); 
} 

aber ich kann den Endpunkt für meine OAuth2 Token nicht zugreifen:

onSubmit() { 
    const headers = new HttpHeaders() 
    .set('Content-Type', 'application/x-www-form-urlencoded') 
    .set('Authorization', 'Basic dGVzdGp3dGNsaWVudGlkOlhZN2ttem9OemwxMDA='); 

    this.http.post('http://localhost:8080/oauth/token', this.loginForm.value, {headers: headers}) 
    .subscribe(
     data => this.onLoginSuccess(), 
     err => alert(err.error.message) 
    ); 
} 

Das resultierende Gespräch:

enter image description here

Ich habe keine Ahnung, was das Problem ist.

Antwort

0

Der Berechtigungsheader ist speziell. Sie müssen mit einer anderen Methode

.allowCredentials(false)

hinzufügen
Verwandte Themen