接口返回的json格式的数据,浏览器解析异常


问题场景:

后台正常返回json格式的返回值,但是浏览器解析异常。如图

 

 问题定位:

是返回值中有一个字段的值的末尾有空格。刚开始后端认为是前端在保存的时候保存了空格,需要前端处理一下。

这样解决的底层原理是什么呢?为什么会发生这样的问题呢? 作为一个热爱学习的前端同学,当然不会放过这个可以学习的机会了。

 

带着问题,我就和后端同事一起研究这个问题。后来发现

 

浏览器中必须遵守了 JSON 规范——如果 JSON 数据中需要出现 tab 字符,必须是经过转义的("\t" 或 "\u0009");如果是直接出现,则被认为是非法字符,JSON.parse() 方法会报错。

 

当前的后端代码直接采用手动拼接,并没有去处理这个tab空格的问题,所以就导致了浏览器无法解析的问题。

 

总结:遇到问题,先想想根源,网络搜索寻找答案。不要直接甩锅,也不要直接去接锅,首选要做的是找到解决方法,解决问题。 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM