如何在新的Chrome窗口中从AJAX响应中打开PDF blob

时间:2017-01-26 15:44:02

标签: javascript ajax google-chrome pdf polymer

我xhr-将一些数据发布到服务器,服务器返回PDF,我将其作为blob处理(使用iron-ajax' handle-as =&#34 ; blob" 属性,为了完整起见。) 现在我想在新的浏览器窗口中显示此blob / PDF(仅限Chrome / Windows)。

我已经尝试过 URL.createObjectURL(blob) (new FileReader()).readAsDataURL(blob) - 两者都无声地失败:

方法1)

function handlePdfResponse(blob) {
    const pdfUrl = URL.createObjectURL(blob);
    window.open(pdfUrl, '_blank');
}

方法2)

function handlePdfResponse(blob) {
    const reader = new FileReader();
    reader.onloadend = function(e) {
        window.open(reader.result, '_blank');
    };
    reader.readAsDataURL(blob);
}

在这两种情况下,记录输入 blob 会产生:

Blob {size: 219478, type: "application/pdf"}

使用后一种方法,我可以记录 reader.result (这是一个有效的数据 - uri),将其粘贴到一个新的Chrome窗口中并凝视我闪亮的PDF。

似乎没有办法调试这些方法中的任何一种。

思考?
明显的错误?
还有什么我可以尝试的吗?

编辑:亲爱的后代:我是Chrome版本55.0

1 个答案:

答案 0 :(得分:0)

原来Chrome讨厌弹出窗口。取消阻止他们获胜。