2017-08-17 3 views
2

Je suis en train de télécharger des fichiers dans un projet mobile ionique à base angulaire 2.angulaire 2 ne définit pas de type de contenu « multipart/form-data » mais « application/json »

Je un objet FormData avec au moins 3 champs (_id, type et fichiers).

this.formData = new FormData(); 
if (fileCount > 0) { // a file was selected 
    for (let i = 0; i < fileCount; i++) { 
    this.formData.append('file', inputEl.files.item(i)); 
    } 
} 

[... in the upload method I pass this.formData as files ...] 

files.append('_id', data._id); 
files.append('tipo', tipo); 

Je passe à ma méthode de téléchargement et je définir le "Content-Type" à 'multipart/form-data'

let options: RequestOptionsArgs = new RequestOptions(); 
options.headers = this.headers; (In this.headers I have my Authorization header set) 
options.headers.delete('Content-Type'); 
options.headers.set('Content-Type', 'multipart/form-data'); 

Je fais un poste http

this.http.post(
    `${this.apiUrl}/utenti/upload`, 
    files, 
    options 
) 

mais je reçois une mauvaise réponse de la part du serveur:

je regarde dans l'onglet Réseau de Chrome et je peux voir que mes têtes de demande sont erronées:

Content-Type: application/json 

D'autre part ma charge utile est correcte avec un style form-data:

------WebKitFormBoundaryKiWq1WTTF3AJCFRX 
Content-Disposition: form-data; name="file"; filename="IMG_0001.JPG" 
Content-Type: image/jpeg 


------WebKitFormBoundaryKiWq1WTTF3AJCFRX 
Content-Disposition: form-data; name="_id" 

58e7b968bed0575e13efc63c 
------WebKitFormBoundaryKiWq1WTTF3AJCFRX 
Content-Disposition: form-data; name="tipo" 

foto 
------WebKitFormBoundaryKiWq1WTTF3AJCFRX-- 

Toute supposition de qu'est-ce qui ne va pas ici?

Répondre

0

Si vous avez implémenté un intercepteur, vérifiez que vous ne surchargez pas les en-têtes.