鍍金池/ 問答/Java  HTML/ js接收到后臺返回的數(shù)據(jù)是base64的圖片亂碼

js接收到后臺返回的數(shù)據(jù)是base64的圖片亂碼

使用ajax向后臺發(fā)送請求,后臺返回的是base64的圖片,但是控制臺打印出來是一堆亂碼,該如何解析呢,想把這一段返回的base64直接放到img的src中

clipboard.png
這是ajax請求,返回的是這樣的亂碼:

clipboard.png
前端接收到這個應該怎么解析呢

回答
編輯回答
笨笨噠

你的圖片地址對應的明明是個JPEG的圖片二進制流啊,不是base64字符串,你直接把這個URL設置到img標簽上就可以

2018年3月29日 17:03
編輯回答
壞脾滊

你確定是 base64的?
看樣子,應該是二進制的。

2018年1月31日 04:35
編輯回答
解夏

你這個就是圖片對字節(jié)流啊,如果要直接設置顯示需要將你對data base64后設置到img到src里面,參考:

<img src="data:image/jpg;base64, iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="/>

data:image/jpg 根據(jù)你圖片類型設置。

2018年8月23日 22:41
編輯回答
兮顏

使用ajax獲取的數(shù)據(jù)放進去就會出問題,但是把接口地址的url直接放在img的src就可以
$("#imgCode").attr("src", url);
我請求的時候是get方法
另外用ajax用原生的方法請求是可以的

2017年6月20日 21:22
編輯回答
任她鬧

兄弟,我在調(diào)微信返回小程序二維碼的時候也遇到了這個問題,但是按照上面的說法沒解決,不知道你是怎么解決的呢?

2017年11月19日 20:20
編輯回答
妖妖

根據(jù)log出的內(nèi)容來看,后臺返回的應該是二進制流,全場亂字符+JFIF標記,應該能確定是個JPEG文件的二進制流,而不是base64。所以放段處理二進制流顯示的代碼到回調(diào)里應該就可以了:

var img = document.createElement('img');
img.src = window.URL.createObjectURL(data);
img.height = 60;
img.onload = function() {
    window.URL.revokeObjectURL(this.src);
}
body.appendChild(img);
2017年6月18日 13:32
編輯回答
尤禮

樓主 我也遇到了跟你一樣的問題 按照上面的步驟 一直報錯 也不知道自己哪里寫錯了 那種亂碼是二進制碼 那前端怎么轉(zhuǎn)化為base64呢

2018年4月11日 23:20