2011-12-21 88 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

相關問題