今天項(xiàng)目中合入了同事的代碼酌壕,結(jié)果發(fā)現(xiàn)登錄頁(yè)的二維碼圖片加載失敗了,奇怪的是登錄頁(yè)的代碼我們都沒(méi)有改動(dòng)過(guò)棒旗,圖片是將后端返回的的arraybuffer轉(zhuǎn)為base64格式展示的誓篱。
調(diào)試了一兩個(gè)小時(shí)還是無(wú)法解決圖片加載失敗的問(wèn)題。
我將本地調(diào)試接口返回的數(shù)據(jù)與線上的接口返回做了對(duì)比笼沥。發(fā)現(xiàn)其中的data不太一樣蚪燕,本地是這樣的
而線上是這樣的
很明顯data不一樣,本地的data是亂碼奔浅。
我百度了一番ajax中設(shè)置responseType為"arraybuffer"結(jié)果為亂碼馆纳,終于找到了原因。印象中兩年前也遇到過(guò)這個(gè)問(wèn)題汹桦。
項(xiàng)目中引入了mock.js鲁驶,而mock.js初始化了responseType,mockjs會(huì)影響到會(huì)影響原生的ajax請(qǐng)求舞骆,使得服務(wù)器返回的arraybuffer類型變成亂碼钥弯。
參考鏈接:https://blog.csdn.net/qq_43020029/article/details/112294436