Il peut ne pas être possible de flux de données binaires, mais vous pouvez utiliser Ajax pour récupérer des données binaires.
Ceci est possible en utilisant l'une des deux méthodes suivantes: Javascript Typed Arrays ou XMLHttpResponse overrideMimeType hack. Avoir une lecture d'un bon article sur MDN - ces exemples sont tirés de là: Sending and Receiving Binary Data
La méthode Array dactylographié ressemble à ceci:
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);
Les tableaux typés ne sont pas pris en charge dans IE < 10, Firefox < 4 , Chrome < 7, Safari < 5.1 et Opera < 11,6 et mobile support is shaky but improving.
La seconde méthode utilise une méthode XMLHttpRequest appelée overrideMimeType pour permettre aux données binaires d'être transmises sans être modifiées.
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;
Vous obtenez une chaîne binaire unparsed, sur laquelle vous pouvez utiliser var byte = filestream.charCodeAt(x) & 0xff;
pour récupérer un octet spécifique.
Ceci devrait être accepté comme réponse. – Pacerier
pourquoi ''text \/plain; charset = x-user-defined'' et non pas par ex.'' text \/plain \; \ jeu de caractères \ = x \ -user \ -defined'' ou ''text/plain; charset = x-user-defined''? :) – mykhal