Búsqueda de sitios web

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 );