Tengo la API dotnet core que devuelve un FileStreamResult, pero mi aplicación React no obtiene la respuesta. Los datos esperados. He probado la API en Postman y trae el 200 con pdf OK. Ver mi código:
API
[HttpPost] [Route("downloadFile/{fileName}")] public async Task<IActionResult> DownloadDoc(string fileName) { BlobServiceClient blobServiceClient = new BlobServiceClient(_storedconnectionString); var container = blobServiceClient.GetBlobContainerClient(_azureContainerName); var isExist = await container.ExistsAsync(); if (!isExist) { //Create new container await container.CreateIfNotExistsAsync(); } var blob = container.GetBlobClient(fileName); if (await blob.ExistsAsync()) { var a = await blob.DownloadAsync(); return File(a.Value.Content, a.ContentType, fileName); } return BadRequest(); }REACCIONAR
export async function API_DownloadDoc(fileName){ const access_token = Cookies.get('access_token') const requestOptions = { method: "POST", mode: 'cors', headers: { 'Authorization': `Bearer ${access_token}`, 'Content-Type': 'application/json' }, responseType: 'blob', } return await fetch(`${config.apiUrl}api/downloadFile/${fileName}`, requestOptions).then(async (response) => { const isJsonBlob = (data) => data instanceof Blob && data.type === "application/json" const responseData = isJsonBlob(response?.data) ? await (response?.data)?.text() : response?.data || {} const responseJson = (typeof responseData === "string") ? JSON.parse(responseData) : responseData; return responseJson }) .catch((error) => { return error }) }Respuesta que obtengo
body: (...) bodyUsed: false headers: Headers {} ok: true redirected: false status: 200 statusText: "" type: "cors" url: https://localhost:55000/api/case/downloadDoc/file.pdf [[Prototype]]: ResponseNecesito la respuesta en formato blob. Agradecería cualquier comentario, gracias.