Javascript can';t将二进制数据作为数据视图发布到IE 11中

Javascript can';t将二进制数据作为数据视图发布到IE 11中,javascript,xmlhttprequest,internet-explorer-11,binary-data,typed-arrays,Javascript,Xmlhttprequest,Internet Explorer 11,Binary Data,Typed Arrays,我试图将一些二进制数据发布为数据视图,但IE 11似乎要么转换它,要么以某种方式将其误传为[对象] var xhr = new XMLHttpRequest(); xhr.open('POST', 'http://localhost:8000/key', false) xhr.setRequestHeader('X-Custom-Header-1', 'header1') xhr.setRequestHeader('X-Custom-Header-2', 'header2') xhr.setRe

我试图
将一些二进制数据发布为
数据视图
,但IE 11似乎要么转换它,要么以某种方式将其误传为
[对象]

var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:8000/key', false)
xhr.setRequestHeader('X-Custom-Header-1', 'header1')
xhr.setRequestHeader('X-Custom-Header-2', 'header2')
xhr.setRequestHeader('Content-Type', 'application/octet-stream')

// keyAsUint8 is a Uint8Array holding binary data
var keyDataView = new DataView(keyAsUint8.buffer)
xhr.send(keyDataView)
在IE的开发工具中,检查请求主体会发现数据是作为
[Object Object]
发送的(或者可能是一个空对象
{}

如果我注释掉创建
DataView
对象的行,然后只发送
Uint8Array
本身,
xhr.send(keyAsUint8)
,那么二进制数据将按预期发送

Chrome和Firefox似乎正确地处理了这个问题

铬:

火狐:

根据,IE 11支持类型化数组:


IE 11中发生了什么?为什么二进制数据被转换成
[Object Object]
字符串?Chrome、Firefox和Edge的工作与预期一致,那么IE 11有什么不同之处导致了这种情况?

snafu?我想是的。。。这很糟糕。ie11很旧,二进制ajax很新……没错,但IE声称支持。所以IE的文档要么是完全错误的,要么就是有一个bug。你确定那个文件是ie11的吗?对我来说,它看起来很模糊。。。