Tengo esta situación en la que cargo una imagen con XMLHttpRequest pero sin configurar el tipo de respuesta en blob. Así que recibo una cadena
Mi pregunta es, ¿sigue siendo posible renderizar la imagen en esta situación?
Intenté, por ejemplo, convertir esta cadena en un Blob
out = new Blob([imageString], { type: 'image/png' });pero esto no representa la imagen esperada. ¿Alguna sugerencia?
Y así es como el backend de mi nodo envía esa imagen al navegador
app.get("/binary/*", (req: express.Request, res: express.Response) => { const file = binaryPath + '/test.jpg'; res.sendFile(file); });Finalmente lo entendí: si no desea tener xhr.responseType = 'blob' y desea crear una URL a partir de los datos recibidos, debe configurar xhr.responseType = 'arraybuffer' . Esto permite convertir el binario xhr.response en un blob y luego crear una URL.createObjectURL .
El punto es que cuando no configuras el tipo de responseType en un tipo binario, obtienes la codificación predeterminada xhr.responseType = 'text' y utf8. Y luego falla la creación de blobs.
He incluido esta solución en su stackblitz .