基於javascript處理二進位制圖片流過程詳解
阿新 • • 發佈:2020-06-10
今天學習怎麼生成二維碼,我習慣所有請求都用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)); }) }
我這裡是顯示二維碼
第五行的程式碼不能少 少了的話首次執行該方法沒問題 再次執行的話圖片不會改變 需要重新整理頁面
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。