muszę przesłać plik i wysłać jakąś json wraz z nim, mam tę funkcję:W jaki sposób POST obiekt FormData w 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() }
}
})
}
Mój problem jest, jeśli mogę ustawić content-type
do „multipart/form-data
” mój serwer narzeka granic, gdybym całkowicie usunąć nagłówek content-type
, mój serwer narzeka, że "text/plain
" obsługiwany typ multimediów.
Jak wysłać formularz FormData z funkcją angle2?
na FormData nie jest obecnie obsługiwane. Widzę komentarz todo '// TODO: support URLSearchParams | FormData | Blob | ArrayBuffer' in 'Request' class –
Robienie tego, co masz teraz z kątowym 2, powinno zadziałać – acastano
, aby zauważyć, że headers.delete (" Content-Type ") jest bardzo ważny dla przesyłania plików. Robiłem to: headers.set ("Content-Type", ""), ale to spowoduje kanciaste dodanie ciągu wieloczęściowego/danych formularza z przecinkiem (co spowoduje, że będzie on zniekształcony. dla tego rozwiązania, dzięki! –