JSON parece tener muchos beneficios sobre formData para enviar datos al servidor. Algunos de ellos incluyen el envío de datos anidados sin tener que enredarlos manualmente, o hacer posible que funcione un código simple como el siguiente:
data() { return { form: {}, } }, methods: { submit() { this.form = await this.$axios.$post('/images', this.form) },No importa cómo esté estructurado el objeto 'formulario', podría enviarlo fácilmente y administrar el JSON en el servidor. El problema con este enfoque parece surgir cuando necesitamos enviar algunos archivos cargados juntos. El enfoque más común parece ser enviar los archivos como base64, pero esta es una mala práctica ya que aumenta el tamaño de los archivos. ¿Hay alguna forma de que podamos enviar un archivo adjunto a este cuerpo JSON sin convertirlo a base64 o la única forma sería usar el método formData? ¿Algo así como datos de formulario de varias partes pero con JSON?
No, el tipo de contenido json no puede tener un archivo adjunto. Para las API, es mejor cargar un archivo por separado y luego usar la ruta al archivo (o el disco y el nombre del archivo) para relacionar el recurso con el archivo.
Si tiene que hacer una sola solicitud, entonces debe estar en el formulario "formData".