因为在写项目图片验证码时遇到:
一个json解析错误。
Error: 在第1行发生解析错误 :
{"code":"/9j/4AAQSkZJRgABAgA
此处缺少'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['字符, 实际上是一个 'undefined'
最终发现是后台数据给错,后台生产的图片编码是按行输出的,,
既是:在输出到前端后,不会以正确json格式接收
,因为有空行回车
最终发现原因:
后台使用的编码类错误
在Java中有很多base64编码的类,
但是它们的方法是不同的带来的效果也不尽相同
例如:
1.
com.sun.org.apache.xml.internal.security.utils.Base64
它的encode方法能够得到base64编码,但是码长一定长度后,就会打一个回车换行,容易与base64字符串混淆
2.
org.apache.tomcat.util.codec.binary.Base64;
它的encodeBase64String()方法才是返回一个base64字符串
写的时候别被坑了,不好找。