基于javascript處理二進(jìn)制圖片流過程詳解
今天學(xué)習(xí)怎么生成二維碼,我習(xí)慣所有請求都用ajax完成
但是今天發(fā)現(xiàn)jquery的ajax不支持二進(jìn)制,只能搞純文本
于是百度之后手動實(shí)現(xiàn)這一功能
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的問題 需要處理的在第一行搞就行
需要三個(gè)參數(shù)
地一個(gè)是請求url,第二個(gè)是請求參數(shù),第三個(gè)是成功后的處理方法
請求參數(shù)用這樣的方式
{‘param1’:1,’param2’:2,’param3’:3}
處理方法要接收一個(gè)參數(shù) 就是響應(yīng)的數(shù)據(jù) 也就是下圖的data
然后是調(diào)用
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)); })}
我這里是顯示二維碼
第五行的代碼不能少 少了的話首次執(zhí)行該方法沒問題 再次執(zhí)行的話圖片不會改變 需要刷新頁面
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python中scrapy處理項(xiàng)目數(shù)據(jù)的實(shí)例分析2. Hybris在idea中debug配置方法詳解3. 在idea中為注釋標(biāo)記作者日期操作4. jsp cookie+session實(shí)現(xiàn)簡易自動登錄5. XPath入門 - XSL教程 - 36. .NET Core Web APi類庫內(nèi)嵌運(yùn)行的方法7. .NET6使用ImageSharp實(shí)現(xiàn)給圖片添加水印8. ASP.NET MVC實(shí)現(xiàn)橫向展示購物車9. ASP.NET MVC使用Boostrap實(shí)現(xiàn)產(chǎn)品展示、查詢、排序、分頁10. .net如何優(yōu)雅的使用EFCore實(shí)例詳解
