бинарная связь с XMLHttpRequest в Safari и iOS Safari? - PullRequest
2 голосов
/ 22 декабря 2011

В chrome сообщается, что с помощью кода, подобного следующему, можно осуществлять двоичную связь с сервером (вместо традиционной связи base64).

var xhr = new XMLHttpRequest();
xhr.open(method, url, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.responseType = 'arraybuffer';
xhr.onload = ...
var data = new ArrayBuffer(byteArray.length);
var ui8a = new Uint8Array(data);        
for (i=0; i<byteArray.length; i++) {
    ui8a[i] = byteArray[i] & 0xff;
}
var bb = new BlobBuilder();
bb.append(data);
xhr.send(bb.getBlob());

Если предположить, что Chrome и Safari охватывают HTML5 аналогичным образом, есть ли способ сделать это в Safari и iOS Safari?

1 Ответ

0 голосов
/ 25 сентября 2012

new BlobBuilder () не работает в Mobile Safari, вы можете использовать new Blob () следующим образом:

xhr.send( new Blob([data], { 'type' : ... }) );
...