基于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)); })}
我這里是顯示二維碼
第五行的代碼不能少 少了的話首次執行該方法沒問題 再次執行的話圖片不會改變 需要刷新頁面
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章: