簡體   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