2017-03-03 10 views
0

Ich versuche, einige Dateien auf einen Express-Server hochzuladen, der Server die cors verwendet() Modul wie dieseAngular 2 Formulardaten Express CORS Ausgabe

app.use(cors()); 

dies ist der Angular-2-Code laden die Dateien

let formData:FormData = new FormData(); 
    for(let i = 0; i < files.length; i++) { 
     let file = files[i]; 
     formData.append(`file`+(i+1), file, file.name); 
    } 

    let token = localStorage.getItem('supersecrettoken'); 
    let headers = new Headers(); 
    headers.append("Content-Type", 'multipart/form-data'); 
    headers.append("auth", token); 

    return this.http.post(`${Constants.SERVER_IP}/imports`, formData, {headers: headers}) 
     .map(response => { 
      return response.json(); 
     }) 
     .catch(this.logger.handleError).share(); 

Nun ist diese gibt folgende Fehler

No 'Access-Control-Allow-Origin' header is present on the requested resource 

Wenn ich die multipart/form-data ändern applicatio n/json wird es funktionieren.

Wie kann ich dann mehrere Dateien auf den Server hochladen?

Grüße!

+0

Welche CORS-Header haben Sie auf dem Server festgelegt? –

+0

Ich habe versucht, das Cors-Modul (Es funktioniert für den Rest der App, aber Multipart/Form-Daten nicht akzeptieren) und diese Access-Control-Allow-Origin "," * " " Access- Control-Allow-Header "," Herkunft, X-Requested-With, Inhaltstyp, Accept " – troyz

+0

Können Sie Antwort-Header erhalten? –

Antwort

0

Sie gelöst wahrscheinlich dies nun aber nicht, wenn nur diese auf die Header hinzufügen:

headers.append('Access-Control-Allow-Origin', '*'); 

Die ‚*‘ jede Domäne. Möglicherweise möchten Sie es auf bestimmte Domains beschränken.