0

由于我通过请求发送大量数据,因此我必须使用 renderAsync 来使用 POST。当流回来时,我用下面的 JS 代码打开它

 jsreport.renderAsync(request).then(function(arrayBuffer) {
 window.open("data:application/pdf;base64," + arrayBuffer
)};);

但随后出现了错误。有没有其他方法可以做到这一点?

4

1 回答 1

1

这似乎有效

<script>
    jsreport.renderAsync(request).then(function(response) {
        var uInt8Array = new Uint8Array(response);
        var i = uInt8Array.length;
        var binaryString = new Array(i);
        while (i--)
        {
            binaryString[i] = String.fromCharCode(uInt8Array[i]);
        }
        var data = binaryString.join('');
        var base64 = window.btoa(data);

        window.open("data:application/pdf;base64, " + base64);    
    })
</script>
于 2016-07-27T09:26:15.553 回答