Ich brauche eine Datei zu laden und einige json zusammen mit ihm zu schicken, habe ich diese Funktion:Wie POST ein FormData-Objekt in Angular 2?
POST_formData(url, data) {
var headers = new Headers(), authtoken = localStorage.getItem('authtoken');
if (authtoken) {
headers.append("Authorization", 'Token ' + authtoken)
}
headers.append("Accept", 'application/json');
headers.delete("Content-Type");
var requestoptions = new RequestOptions({
method: RequestMethod.Post,
url: this.apiURL + url,
headers: headers,
body: data
})
return this.http.request(new Request(requestoptions))
.map((res: Response) => {
if (res) {
return { status: res.status, json: res.json() }
}
})
}
Mein Problem ist, wenn ich die content-type
auf „multipart/form-data
“ mein Server beschwert sich über die Grenzen gesetzt, ich, wenn Entfernen Sie die content-type
Header vollständig, beschwert sich mein Server, dass es "text/plain
" ein unterstützter Medientyp ist.
Also, wie senden Sie FormData mit angular2?
der Formdata ist jetzt nicht unterstützt. Ich kann einen Kommentar sehen '' TODO: support URLSearchParams | Formulardaten | Klecks | ArrayBuffer 'in' Request' Klasse –
Doing, was Sie jetzt mit eckigen 2 haben, sollte funktionieren – acastano
nur zu beachten, Header.delete ("Content-Type") ist sehr wichtig für den Datei-Upload. Ich tat dies: headers.set ("Content-Type", ""), aber das wird eckig veranlassen, die multipart/form-data string mit einem Komma anzufügen (was es falsch macht. Ich habe den ganzen Tag damit zugebracht –