브라우저에서 아약스 응답에서받은 PDF 파일을 다운로드하려고합니다. 크롬에서아약스 응답에서 PDF 파일 다운로드
var req = new XMLHttpRequest();
req.open("POST", "/servicepath/Method?ids=" + ids, true);
req.responseType = "blob";
req.onreadystatechange = function() {
if (req.readyState === 4 && req.status === 200) {
var blob = req.response;
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "PdfName-" + new Date().getTime() + ".pdf";
link.click();
}
};
req.send();
불행하게도이 단지 작품을하지만 파이어 폭스 + IE : 나는 Download pdf file using jquery ajax에서 영감을
는클릭/다운로드 이벤트 같은 시뮬레이션합니다. 마지막 두 브라우저에서 실행하려고하면 아무 일도 일어나지 않습니다.
스크립트와 마크 업은 CMS의 상속으로 인해 iframe 내부에 배치되지만 영향이 있는지 확실하지 않습니다.
모든 최신 브라우저에서이를 최적화하는 방법에 대한 아이디어가 있으십니까? 나는 또한 사파리의 버전을 얻으려고 노력했다
var req = new XMLHttpRequest();
req.open("POST", "/servicepath/Method?ids=" + ids, true);
req.responseType = "blob";
req.onreadystatechange = function() {
if (req.readyState === 4 && req.status === 200) {
var filename = "PdfName-" + new Date().getTime() + ".pdf";
if (typeof window.chrome !== 'undefined') {
// Chrome version
var link = document.createElement('a');
link.href = window.URL.createObjectURL(req.response);
link.download = "PdfName-" + new Date().getTime() + ".pdf";
link.click();
} else if (typeof window.navigator.msSaveBlob !== 'undefined') {
// IE version
var blob = new Blob([req.response], { type: 'application/pdf' });
window.navigator.msSaveBlob(blob, filename);
} else {
// Firefox version
var file = new File([req.response], filename, { type: 'application/force-download' });
window.open(URL.createObjectURL(file));
}
}
};
req.send();
하지만 잘 작동하지 않았다 :
당신이 오류를받을 수 있나요? – Cristy
IE에서 콘솔을 확인하십시오. 오류가 발생하면 알려주세요. –