来自XMLHttpRequest文本的JS ArrayBuffer

时间:2019-02-03 00:25:46

标签: javascript c http filereader arraybuffer

我一直在尝试使用XMLHttpRequest来从C结构创建一个二进制文件。

如果我在十六进制编辑器中打开文件,则所有字符均按预期进行编码。

如果使用<input type='file' />将文件添加到静态HTML页面,然后使用FileReader.readAsArrayBuffer(),则可以看到ArrayBuffer具有相同的期望值。

但是,当我尝试通过XMLHttpRequest发送它并将其responseText放入ArrayBuffer时,有几个字符被Unicode“替换字符”替换。

如果我在FileReader.readAsText()测试中使用<input type='file' />,我会得到与XMLHttpRequest.responseText相同的字符丢失。

我对文件服务器有控制权,并且尝试在响应中添加Content-Type标头(application/octet-stream?),但这似乎没有什么作用。

在这里我想确保XMLHttpRequest.responseText拥有正确的数据,以便使用与ArrayBuffer相同的值来创建FileReader是什么?

1 个答案:

答案 0 :(得分:0)

当然,经过数小时的研究,就在我坚持不懈地找到解决方案之后。

XMLHttpRequest具有npm start -- --reset-cache属性-我不应该使用./android/gradlew clean && react-native run-android。另外,我可以在发送请求之前设置responseType属性,以确保它在ArrayBuffer中返回。