繁体   English   中英

有什么方法可以使用XMLHttpRequest对象发送二进制数据吗?

[英]Is there any way to send binary data with XMLHttpRequest object?

我正在尝试使用XMLHttpRequest发送二进制块

var xhr = new XMLHttpRequest();
var bindata = 0x0f0f;

xhr.open("POST", "binary_reader.php");

xhr.send(bindata);

但是这种方法行不通。 我尝试提供Content-type:application / octet-streamxhr的 Content-encoding标头,它们也不起作用。 我怀疑无法撰写此类请求。

我将不胜感激任何帮助。

XMLHttpRequest.sendAsBinary已过时。 链接

MDN所述 ,您可以直接发送二进制类型的数组:

var myArray = new ArrayBuffer(512);
var longInt8View = new Uint8Array(myArray);

// generate some data
for (var i=0; i< longInt8View.length; i++) {
  longInt8View[i] = i % 256;
}

var xhr = new XMLHttpRequest;
xhr.open("POST", url, false);
xhr.send(myArray);

是的,您可以使用XHR发送二进制数据。 您需要做的就是设置适当的标头和mime-type,然后调用sendAsBinary方法而不是简单的send方法。 例如:

var req = new XMLHttpRequest();  
req.open("POST", url, true);  
// set headers and mime-type appropriately  
req.setRequestHeader("Content-Length", 741);  
req.sendAsBinary(aBody);

W3C在最新规范中将Blob类型引入到XMLHttpRequest中。 当前,到目前为止,我还没有看到任何实现,但是在不久的将来,这绝对是使用XMLHttpRequest下载和上传二进制数据的方法。

“处理二进制数据”一节在这里介绍了如何发送和通过XMLHttpRequest接收二进制数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM