Javascript:从XMLHttpRequest读取原始字节 - 搞砸了

时间:2014-03-22 10:40:50

标签: javascript jquery xmlhttprequest byte

我正在使用此原始问题的代码段:Read bytes from a binary file with JavaScript, without jQuery

但是,由于某些原因,似乎加载了一整套不同的字节!我怀疑这与字符串转换有关。

以下是我要下载的二进制文件的副本:http://steeman.dk/html5/coco/colorbasic13.rom

对于我的本地IIS 7.5服务器,我已将.rom MIME类型添加为“application / octet-stream”(我还尝试使用'text / plain; charset = x-user-defined',结果相同)。

期待是从这开始的字节序列:

a1 cb a2 82 a7 7c a7 0b a7 f4 a9 de a7 d8 10 ce (etc.) 

然而,我 的内容如下:

fd e2 fd fd 7c fd 0b fd fd fd a7 fd 10 fd 03 c6 37 fd fd 23 (etc.) 

除了大量的'fd'之外,我并没有真正看到明显的模式。是什么赋予了?

BTW使用JQuery有更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

看起来有一种新方法,使用Uint8Array并将响应类型设置为“arraybuffer”:

function loadRom(file, callback) 
{
   var xhr = new XMLHttpRequest();
   xhr.open('GET', file, true);
   xhr.responseType = 'arraybuffer';
   xhr.onload = function (e) 
   {
    if (this.status == 200) 
    {
        var bytes = new Uint8Array(this.response);
        callback(bytes);
    }
  }
xhr.send();
}

这对我有用!