typescript - obtengo datos de formulario vacíos en ionic 3
Cuando agrego mis parámetros en formData, y luego hago console de formData, recibo un formData vacío. Quiero establecer todos los parámetros en formData. ¿Cómo puedo establecer formData en Ionic 3?
He estado usando
let fileList: FileList = event.target.files;
let file = fileList[0];
let formData:FormData = new FormData();
formData.append('User_Id', this.userId);
console.log("formData: User_Id", formData);
formData.append('sessionId', this.sessionId);
console.log("formData: sessionId", formData);
formData.append('File_Name',file, file.name);
console.log("formData: File_Name", formData);
formData.append('File_Description', "new file created");
console.log("formData: File_Description", formData);
formData.append('Categories_Id', "1");
console.log("formData: Categories_Id", formData);
console.log("formData:", formData);
Respuesta #1
Según la documentación de FormData (enlace: https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData), puedes agregar formdata utilizando los siguientes métodos:
versión de dos parámetros:
formData.append('key', 'value');
versión de tres parámetros:
formData.append('key', 'value', 'filename');
// Código para mostrar las llaves:
for (var key of formData.keys()) {
console.log(key);
}
// Código para mostrar los valores:
for (var value of formData.values()) {
console.log(value);
}
Así que, por favor, usa el código anterior para recuperar los datos del formulario en lugar de usar console.log("formData:", formData);
Además, al enviar formadata puedes usar el siguiente código:
var payload = { content: formData };
HTTP.call( 'POST','your own server url', payload);
Si lo anterior no funciona, por favor consulte el siguiente código:
import { Http, Headers, RequestOptions } from '@angular/http';
Luego use el siguiente código:
let payload = JSON.stringify( formData );
var headerObj: any = {
'Content-Type': 'application/json'
}
let headers = new Headers( headerObj );
let options = new RequestOptions( { headers: headers });
this.http.post( url, payload, options );
