Esto es lo que probé
Recibo una cadena binaria que envía una solicitud GET a alguna API
let BinaryData = await Operations._sendRequest(baseURL + '/getBinaryString/', 'GET');arriba Solicitud de darme como esta cadena
"%PDF-1.4 %���� 4 0 obj <</Length 5076/Filter/FlateDecode>>stream x���Kw�F���� Xxa�c� ���\��g��.��E{ ,���-�e����} ................................................................ startxref 5701 %%EOF "Primero trato de codificar esta cadena
const encoder = new TextEncoder() let encodeBinaryData = encoder.encode(BinaryData)Luego lo convierto en blob
let blob = new Blob([encodeBinaryData],{type: "application/pdf"});Finalmente voy a mostrar estos datos en Iframe
let frame = document.createElement('iframe'); frame.src = window.URL.createObjectURL(blob); let par = document.getElementById('pdf'); par.appendChild(frame);Ahora IFrame está vacío, no muestra los datos. El binario anterior tiene una tabla de datos. Puedo enviar el siguiente tipo de respuesta a la API, pero no quiero usarlo de esa manera
responceType:"blob"si envío el tipo de respuesta como blob, puedo obtener los datos como BLOB y enviarlos a iframe y mostrarlos como PDF. Puedo ver todos mis datos allí.
Pero quiero mostrar los datos PDF usando el código anterior. Probé si puedo mostrar la cadena en iframe
let str = "Hello World" let encodeBinaryData = encoder.encode(str) let blob = new Blob([encodeBinaryData],{type: "text/plain"});Entonces puedo ver la cadena correcta allí, EX: Hola mundo
Pero si uso {type: "application/pdf"} no puedo ver nada
¿Como puedo solucionar este problema? (Estoy usando HTML puro)