1. 程式人生 > 程式設計 >基於javascript處理二進位制圖片流過程詳解

基於javascript處理二進位制圖片流過程詳解

今天學習怎麼生成二維碼,我習慣所有請求都用ajax完成

但是今天發現jquery的ajax不支援二進位制,只能搞純文字

於是百度之後手動實現這一功能

function getBinary(url,args,success) {
  var xmlhttp = new XMLHttpRequest();
  var data = eval(args);
  var i = 0;
  for (var key in data) {
    if (i++ === 0) {
      url += '?' + key + "=" + data[key];
    } else {
      url += '&' + key + "=" + data[key];
    }
  }
  xmlhttp.open("GET",url,true);
  xmlhttp.responseType = "blob";
  xmlhttp.onload = function () {
    success(this.response);
  };
  xmlhttp.send();
}

我沒有處理不同瀏覽器的XHR的問題 需要處理的在第一行搞就行

需要三個引數

地一個是請求url,第二個是請求引數,第三個是成功後的處理方法

請求引數用這樣的方式

{‘param1':1,'param2':2,'param3':3}

處理方法要接收一個引數 就是響應的資料 也就是下圖的data

然後是呼叫

function submit() {
  getBinary("/request/qrCode",{'data': $('#str').val()},function (data) {
      var img = $('#qrcode');
      window.URL.revokeObjectURL(img.src);
      $('#qrcode').attr('src',window.URL.createObjectURL(data));
    })
}

我這裡是顯示二維碼

第五行的程式碼不能少 少了的話首次執行該方法沒問題 再次執行的話圖片不會改變 需要重新整理頁面

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。