程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> ajax中獲取和發送二進制數據的方法

ajax中獲取和發送二進制數據的方法

編輯:更多關於編程

       用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);

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved