1

Je suis en train d'envoyer des fichiers en utilisant le formulaire-données, mais ce script ne fonctionne pas en 4 angulaire, bien que cela fonctionne dans angulaire-2transformRequest: angular.identity ne fonctionne pas dans angulaire 4

var fd = new FormData(); 
var datas = $("#fileForm").serializeArray(); 
// send other data in the form 
for(var i = 0; i < datas.length; i++) { 
    fd.append(datas[i].name, datas[i].value); 
}; 
// append file to FormData 
fd.append("file", $("#fileInput")[0].files[0]) 
// for sending manual values 
fd.append("email", this.email+''); 
fd.append("category", this.cate+''); 
fd.append("pricepackage", this.pkg+''); 
fd.append("duration", this.pkg_d+''); 
fd.append("secret_key", this.srt_key+''); 

var url = "http://127.0.0.1:8000/func/textfile_sent/"; 
this.http_obj.post(url,fd, { 
    headers: {'Content-Type': undefined}, 
    transformRequest : angular.identity 
}).success(function(data, status, headers, config) { 
    // this callback will be called asynchronously 
    // when the response is available 
}). 
error(function(data, status, headers, config) { 
    // called asynchronously if an error occurs 
    // or server returns response with an error status. 
}); 

il montre une erreur à transformRequest : angular.identity et l'erreur est:

TS2345: Argument de type « {têtes: { 'Content-Type': non défini; } transformRequest: any; } 'n'est pas assignable au paramètre de type' RequestOptionsArgs '. Littéral d'objet peut uniquement spécifier les propriétés connues, et « transformRequest » n'existe pas dans le type « RequestOptionsArgs »

Répondre

0

On ne sait pas dans quelle version de Angulaire cela a changement, si jamais, mais dans la version actuelle de angulaire, RequestOptionsArgs possède uniquement les propriétés suivantes:

corps, en-têtes, méthode, paramètres, responseType, search, url, withCredentials.

Il suffit donc de changer votre code à ceci:

//... 
this.http_obj.post(url,fd, { 
    headers: {'Content-Type': undefined}, //remove the extraneous property 
}).success(function(data, status, headers, config)