비슷한 문제에 대한 작업을 하루 종일 소비하는 데, 나는 이해했다. 당신이 뭔가 너무 귀하의 페이지 URL 변경을 이미 열려있는 브라우저 탭 내부의 Blob
렌더링 할 때
기본적으로, 문제의이 종류가 생성됩니다
blob:http://localhost:8080/9bbeffe1-b0e8-485d-a8bd-3ae3ad9a0a51
것 PDF 파일을 필요에 대한 잘못된 절차 이 같은 :
var fileBlob = new Blob([response.data], {type: 'application/pdf'}); window.location.hfref = fileBlob;
왜이 작동합니까? 음, 페이지에서 렌더링 된 PDF를 볼 수 있으므로 pdf가 잘로드되었다는 생각에 빠질 수도 있습니다. 그러나 페이지를 새로 고치거나 컴퓨터에서 pdf를 다운로드하려고해도 작동하지 않습니다.
WTH? 처음에는 브라우저 주위를 돌고있는 일종의 검은 마법을 생각해 보았습니다. 그 다음에 문제를 발견했습니다. 파일은 존재하지 않지만 브라우저 내부에만 저장된 캐시입니다. 따라서 blob을 생성하고 생성 된 blob url을 가리 키도록 현재 탭을 리디렉션하면 캐시가 손실됩니다.
이제 모든 것이 의미가 있습니까?
- 당신은 서버 브라우저는
- 당신은
- 당신은 PDF를 볼 버퍼를 읽을 페이지의 URL을 가리키는 탭 내부하지만 동시에 버퍼를 저장
- 에 파일을 요청하면 버퍼 정보가 손실
유일한 당신과 함께 새 탭에서의 Blob의 URL을 여는 할 수 있다고 생각 :
window.open(fileBlob, '_blank');
문제가 해결되었습니다.
나에게도 마찬가지입니다. @Tyler 솔루션을 찾았습니까? –
@AbhishekPrakash IE가 특정 길이의 blob URL을 허용하지 않는다는 것을 알아 차렸으므로 서버 솔루션으로 전환했습니다. –