Estoy tratando de enviar una cadena base64 de un archivo en un cuerpo de solicitud de axios. El tamaño del archivo es de alrededor de 370 KB.
Recibí el error 413 de carga útil de solicitud demasiado grande. Después de investigar un poco en Internet, supe que el servidor está limitando el tamaño de la solicitud.
Hasta ahora mi entendimiento es claro.
Ahora lo cambié a formData y pasé los datos del formulario como un cuerpo de solicitud. Y no recibo ningún error 413. El servidor probó prolijamente mi solicitud.
Entonces, ¿qué pasó entre formData y el servidor?
El servidor se ejecuta en Nginx, Node, Express.
De forma predeterminada axios envía datos como JSON y, en el lado de Node.js, el analizador JSON tiene un límite predeterminado de 100 KB. Por lo tanto, puede continuar usando formData o aumentar un límite en las opciones del analizador JSON.
app.use(json({ limit: '20mb' }));Pero si tiene la intención de enviar contenido grande a menudo, considere usar formData o incluso enviar contenido como binario.
actualización Para FormData, si normalmente lo procesará por multer , tendrá los siguientes límites por defecto:
Field size: 1048576 bytes File size: unlimited