ajax中擷取和發送位元據的方法

來源:互聯網
上載者:User

   用ajax從伺服器端擷取二進位時, 需要用overrideMimtType設定request頭,讓瀏覽器不要修改讀取的的資料,方法如下:

  var xhr = new XMLHttpRequest();

  xhr.onreadystatechange = function(){

  if (xhr.readyState=== 4 && xhr.status === 200){

  var imgdata = xhr.response;

  }

  }

  xhr.open("GET",url,true);

  xhr.overrideMimeType("text/plain; charset=x-user-defined");

  xhr.send(null);

  另外要用xhr.response來獲得位元據,而不是responseText。

  如果需要通過ajax的POST發送位元據,在發送前需要將位元據的高位變為0,通常在XMLHttpRequest中增加一個方法來實現:

  XMLHttpRequest.prototype.sendAsBinary = function(datastr) {

  function byteValue(x) {

  return x.charCodeAt(0) & 0xff;

  }

  var ords = Array.prototype.map.call(datastr, byteValue);

  var ui8a = new Uint8Array(ords);

  this.send(ui8a.buffer);

  }

  var bindata = 位元據;

  xhr.open("POST", url);

  xhr.sendAsBinary(bindata);

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.