Estoy tratando de hacer una llamada a la API (un get) para descargar un documento.
Mi problema es que cuando hago esta llamada a la API recibo un error:
TypeError: no se pueden leer las propiedades de undefined (leyendo 'carga útil')
const printPin = event => { event.preventDefault() //.... props.printedPin(scePersonaEntity.perCod, activateAlert) }mi reductor:
export const printedPin= (id, callback) => { const requestUrl = `${apiUrl}/${id}/printpin` fetch(requestUrl) .then((response) => { response .blob() .then(blob => { console.log("blob ", blob) if (blob.type === 'application/problem+json') { callback(); } else { const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'pin.pdf'; a.click(); } }) .catch(err => console.log(err)) }) }En tu opinión, ¿cómo puedo solucionar este error? Gracias.
Creo que su encadenamiento .then es incorrecto.
¿Podrías probar esto una vez?
export const printedPin = (id, callback) => { const requestUrl = `${apiUrl}/${id}/printpin` fetch(requestUrl) .then((response) => response.blob()).then(blob => { console.log("blob ", blob) if (blob.type === 'application/problem+json') { callback(); } else { const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = 'pin.pdf'; a.click(); } }) .catch(err => console.log(err)) } Su primera luego devolverá response.blob() y luego luego manejará la respuesta de la anterior.