【发布时间】:2016-11-26 05:34:00
【问题描述】:
我正在尝试让浏览器下载从 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 中,但我不确定这是否有任何影响。
知道如何针对所有现代浏览器优化它吗?
【问题讨论】:
-
你有什么错误吗?
-
检查 IE 中的控制台,如果它抛出任何错误,请告诉我们
标签: javascript jquery ajax pdf