我正在尝试使浏览器从ajax响应中下载pdf文件。
受到 Download pdf file using jquery ajax 的启发,我像这样模拟点击/下载事件:
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();
不幸的是,这只在Chrome中起作用,但在Firefox和IE中则不起作用。我尝试在最后两个浏览器中触发它时,什么也没有发生。
由于从CMS继承,脚本和标记被放置在一个iframe内,但我不确定这是否会产生任何影响。
有什么想法可以优化它以适用于所有现代浏览器吗?