javascript - 将数组缓冲区转换为字符串 : Maximum call stack size exceeded

标签 javascript jquery encoding data-conversion arraybuffer

这是我的代码。

var xhr = new XMLHttpRequest();
xhr.open('GET',window.location.href, true);
xhr.responseType = "arraybuffer";
xhr.onload = function(event) {
 debugger;
 console.log(" coverting array buffer to string "); 
 alert(String.fromCharCode.apply(null, new Uint8Array(this.response)));
};
xhr.send();

该请求是针对大小约为 3 MB 的 PDF URL 发出的。我读过几个线程,它们都出现了同样的错误,超出了最大调用堆栈大小,告诉我必须进行一些递归调用,但我在这里没有看到任何递归调用。谁能帮忙?

最佳答案

我遇到了同样的问题,最后我使用了this code :

function _arrayBufferToBase64( buffer ) {
    var binary = '';
    var bytes = new Uint8Array( buffer );
    var len = bytes.byteLength;
    for (var i = 0; i < len; i++) {
        binary += String.fromCharCode( bytes[ i ] );
    }
    return window.btoa( binary );
}

关于javascript - 将数组缓冲区转换为字符串 : Maximum call stack size exceeded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38432611/

相关文章:

javascript 中的 php var

"Open in new Tab"的 Javascript 事件

javascript - jQuery:编辑值时更改表单输入的颜色

javascript - 如何使用 jQuery 从页面中提取 javascript

php - 如何转义由 PHP parse_ini_file 函数解析的文件中的特殊字符?

c# - 为什么 HtmlEncode 不编码这个字符?

javascript - 在 JavaScript 上请求客户端证书

javascript - 我怎样才能返回可变颜色值,以便我可以在 onclick 事件中应用它?

javascript - 您能告诉我为什么这个 ajax 调用没有到达网络服务吗?

qt - 如何确定Qt中QTextEdit中文本的编码?