Sur*_*tta 8 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();
Run Code Online (Sandbox Code Playgroud)
该请求正在制作一个大约3 MB的pdf网址.阅读几个相同错误的线程,告诉必须有一些递归调用,但我没有看到任何递归调用.有帮助吗?
Ant*_* O. 13
我遇到了同样的问题,我终于使用了这个代码:
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 );
}
Run Code Online (Sandbox Code Playgroud)
该错误是由函数参数数量的限制引起的.请参阅"RangeError:超出最大调用堆栈大小"为什么?
而不是String.fromCharCode.apply()使用例如a TextEncoder.请参阅Jint中的Uint8Array字符串
小智 6
this.response.arrayBuffer()
.then((buf) => {
const uint8Array = new Uint8Array(buf);
const data = uint8Array.reduce((acc, i) => acc += String.fromCharCode.apply(null, [i]), '');
return data;
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7261 次 |
| 最近记录: |