Puede que no sea posible transmitir datos binarios, pero puede usar Ajax para recuperar datos binarios.
Esto es posible utilizando uno de dos métodos: Javascript Typed Arrays o un XMLHttpResponse overrideMimeType piratear. Tiene una lectura de un buen artículo sobre MDN - estos ejemplos se toman de allí: Sending and Receiving Binary Data
El método conjunto de tipos se ve así:
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);
matrices con tipo no son compatibles con IE < 10, Firefox < 4 , Chrome < 7, Safari < 5.1 y Opera < 11.6 y mobile support is shaky but improving.
El segundo método usa un método XMLHttpRequest llamado overrideMimeType para permitir que los datos binarios se pasen sin modificaciones.
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;
se obtiene una cadena binaria no analizada, sobre la cual se puede utilizar para recuperar var byte = filestream.charCodeAt(x) & 0xff;
un byte específico.
Esto debe aceptarse como la respuesta. – Pacerier
por qué ''text \/plain; charset = x-user-defined'' y no p. ej.''text \/plain \; \ charset \ = x \ -user \ -defined'' o'' text/plain; charset = x-user-defined''? :) – mykhal