1

Ich versuche, Dateien zu senden Formular-Daten verwenden, aber das Skript funktioniert nicht in Winkel-4, obwohl es in Winkel-2transformRequest: angular.identity funktioniert nicht in Winkel 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. 
}); 
arbeitet

es zeigt einen Fehler bei transformRequest : angular.identity und der Fehler ist:

TS2345: Argument vom Typ ‚{Header: { 'Content-Type': nicht definiert; }; transformRequest: any; } 'kann nicht dem Parameter' RequestOptionsArgs 'zugewiesen werden. Objektliteral kann nur bekannte Eigenschaften angeben, und ‚transformRequest‘ existiert nicht in Typ ‚RequestOptionsArgs‘

Antwort

0

Es ist nicht klar, in welcher Version von Angular dieser Änderung hat, wenn überhaupt, aber in der aktuellen Version von Angular, RequestOptionsArgs hat nur folgende Eigenschaften:

body, headers, Methode, params, responseType, Suche, url, withCredentials.

Also einfach Ihren Code dies ändern:

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