Может быть невозможно передавать двоичные данные, но вы можете использовать Ajax для извлечения двоичных данных.
Это возможно, используя один из двух методов: Javascript Типизированные массивы или XMLHttpResponse overrideMimeType hack. Прочитайте хорошую статью о MDN - оттуда взяты следующие примеры: Отправка и получение двоичных данных
Метод Typed Array выглядит следующим образом:
var oReq = new XMLHttpRequest();
oReq.open("GET", "/myfile.png", true);
oReq.responseType = "arraybuffer";
oReq.onload = function (oEvent) {
var arrayBuffer = oReq.response; // Note: not oReq.responseText
if (arrayBuffer) {
var byteArray = new Uint8Array(arrayBuffer);
for (var i = 0; i < byteArray.byteLength; i++) {
// do something with each byte in the array
}
}
};
oReq.send(null);
Типизированные массивы не поддерживаются в IE <10, Firefox <4, Chrome <7, Safari <5.1 и Opera <11.6, а поддержка мобильных устройств <a href="http://caniuse.com/typedarrays" rel="noreferrer"> шаткая, но улучшается .
Второй метод использует метод XMLHttpRequest с именем overrideMimeType, чтобы позволить двоичным данным передаваться без изменений.
var req = new XMLHttpRequest();
req.open('GET', '/myfile.png', false);
// XHR binary charset opt by Marcus Granado 2006 [http://mgran.blogspot.com]
req.overrideMimeType('text\/plain; charset=x-user-defined');
req.send(null);
if (req.status != 200) return '';
// do stuff with req.responseText;
Вы получаете непарсированную двоичную строку, для которой вы можете использовать var byte = filestream.charCodeAt(x) & 0xff;
для извлечения определенного байта.