問題場景:
后台正常返回json格式的返回值,但是瀏覽器解析異常。如圖
問題定位:
是返回值中有一個字段的值的末尾有空格。剛開始后端認為是前端在保存的時候保存了空格,需要前端處理一下。
這樣解決的底層原理是什么呢?為什么會發生這樣的問題呢? 作為一個熱愛學習的前端同學,當然不會放過這個可以學習的機會了。
帶着問題,我就和后端同事一起研究這個問題。后來發現
瀏覽器中必須遵守了 JSON 規范——如果 JSON 數據中需要出現 tab 字符,必須是經過轉義的(
"\t"
或"\u0009"
);如果是直接出現,則被認為是非法字符,JSON.parse()
方法會報錯。
當前的后端代碼直接采用手動拼接,並沒有去處理這個tab空格的問題,所以就導致了瀏覽器無法解析的問題。
總結:遇到問題,先想想根源,網絡搜索尋找答案。不要直接甩鍋,也不要直接去接鍋,首選要做的是找到解決方法,解決問題。