[英]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-stream , xhr的 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.