Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

183
Vistas
Forma correcta de permitir que un usuario descargue un archivo cuando se genera su URL

Situación:

  • El archivo se encuentra en AWS S3
  • El usuario presiona el botón para descargar un archivo
  • La solicitud se envía al servidor.
  • El servidor en respuesta envía la URL generada que otorga acceso al archivo
    • La URL, por supuesto, vincula a otro dominio (al cubo S3)

Solución actual:

  • En este momento, el controlador JS cambia la ubicación de la ventana a la URL recibida.
  • El archivo se descarga como debería.
  • Pero los navegadores arrojan errores como:
    • Chrome: "Recurso interpretado como documento pero transferido con aplicación de tipo MIME/octet-stream"
    • Safari: "Error al cargar el recurso: carga de marco interrumpida"

No puedo reemplazar el botón con el simple <a href="url" download> porque la URL se genera en respuesta a la solicitud del usuario y no se conoce de antemano.

Quiero que sea una experiencia de un solo clic (es decir, no quiero que el usuario haga clic en un nuevo botón con la URL recibida).


Pregunta:

  • ¿Cuál es la forma correcta de permitir que un usuario descargue un archivo cuando se genera su URL?
  • ¿Está bien cambiar la ubicación de la window.location para ese propósito?
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

No suena bien cambiar la ubicación de la window.location para el archivo de descarga.

Si usa una etiqueta <a> , puede agregar el atributo de download

 <a href="my.pdf" download="your.pdf" >download file</a>

Si prefiere usar código, puede usar un script como este:

 var aTag = document.createElement('a'); aTag.setAttribute('download','your.pdf'); aTag.setAttribute('href','my.pdf'); aTag.click();
over 4 years ago · Santiago Trujillo Denunciar

0

La forma correcta es hacer que el backend envíe el encabezado Content-Type adecuado con el tipo de archivo MIME correcto en la solicitud de descarga del enlace.

Está bien cambiar window.location o document.location.href para redirigir la página al enlace de descarga.

over 4 years ago · Santiago Trujillo Denunciar

0

Este es en realidad un problema muy simple que no necesita Javascript en absoluto.

Cuando la solicitud se envía al servidor simplemente haciendo clic en un enlace para realizar la solicitud, el servidor, después de validar la solicitud, genera una URL firmada y luego responde...

 HTTP/1.1 302 Found Location: https://example-bucket.s3.amazonaws.com/... # new signed URL

El navegador sigue la redirección y obtiene el recurso.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda