2011-12-21 136 views
2

在chrome中据报道,通过使用类似下面的代码,可以与服务器进行二进制通信(而不是传统的base64通信)。在Safari和iOS Safari中使用XMLHttpRequest进行二进制通信?

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中执行此操作?

回答

0

新BlobBuilder()无法在移动Safari浏览器,则可以使用新斑块()这样的:

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

新斑块Safari中并没有为我工作u能帮助我通过提供链接或可以分享您的代码 – user969275 2013-03-01 07:13:33

+0

您可以查看http://gokercebeci.com/dev/canvasresize和http://gokercebeci.com/dev/droparea,如果您仍有问题,请告诉我 – 2013-03-06 12:47:44

相关问题