Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

393
Views
¿Por qué mi docx generado en javascript de un blob está lleno de [Objeto Objeto]?

Estoy enviando datos a mi backend de Django a través de una solicitud POST, el servidor luego crea un docx usando estos datos y me lo envía de regreso donde estoy tratando de descargarlo usando el siguiente código:

 axios.post(route, data).then((res) => { const filename = "report.docx" var blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }); var link = document.createElement('a'); var URL = window.URL || window.webkitURL; var downloadUrl = URL.createObjectURL(blob); link.href = downloadUrl; link.style = "display: none"; link.download = filename; document.body.appendChild(link) link.click() link.remove() });

La descarga del archivo funciona, pero cuando lo abro, solo contiene [Objeto Objeto], ¿qué estoy haciendo mal aquí? Revisé el backend y el documento se creó correctamente, ya que tiene el contenido correcto cuando lo guardo cuando se genera en el servidor, por lo que lo estoy enviando mal o creando mal el archivo en el frontend.

Así es como lo envío desde el backend:

 #Generating the doc properly before this... response = HttpResponse(content_type='application/vnd.openxmlformats-officedocument.wordprocessingml.document') report_filename = 'graph-report-'+now.strftime('%Y-%m-%d_%H-%M-%S')+'.docx' response['Content-Disposition'] = 'attachment; filename=%s'%(report_filename) document.save(response) return response

Gracias por ayudarme.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Con Axios, el res en axios.post(route, data).then((res) => es un objeto de respuesta.

Los datos devueltos se encuentran en res.data .

  1. Haga console.log(res.data) para ver que realmente son los datos binarios que espera.
  2. new Blob([res.data], ... para usar esos datos para obtener el blob. (Si ya es un blob cortesía de Axios, no es necesario que se moleste).

(Aparte, realmente no necesita usar fetch() y createObjectURL para esto, ya que está formando una respuesta binaria similar a una descarga; sería suficiente que el navegador PUBLIQUE los datos deseados, por ejemplo, como un formulario al punto final; descargaría la respuesta de la misma manera).

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!