Entonces, la respuesta de la API contiene propiedades data que deberían contener el archivo .zip que necesito. Está escrito en un formato que no entiendo.
Intenté usar .blob() como se menciona en preguntas similares aquí en Stackoverflow, pero parece que no funciona.
La solución ideal es esta: cuando el cliente presiona el botón, se le debe solicitar que descargue dicho archivo .zip (el de la respuesta HTTP) localmente. Estoy usando axios y el tipo de solicitud es PUT .
Mi ejemplo de código hasta ahora:
const exportCards = () => { axios .put(url, { ids: ids, }) .then((res) => { return res.data.blob(); }) .then((blob) => { var file = window.URL.createObjectURL(blob); window.location.assign(file); }) .catch((e) => console.log(e)); };a etiqueta tiene un atributo de download , en .then puedes probar algo así
const url = new Blob([response.data],{type:'application/zip'}); const link = document.createElement('a'); link.href = url; link.setAttribute('download', 'file.zip'); //set download attribute to link document.body.appendChild(link); link.click(); // this will download file.zip