报错如下
在vue获取后台系统的菜单menu时,报此错,length未定义,经排查,是vue访问后台获取menu list数组的长度时引发的。
那么问题来了:后台menu菜单的length必然是>0的,但是这里未获取到就离谱。因为项目在上一个版本还是正常的。所以在跟之前版本的对比之下发现原因如下:
原因
后台新版本增加了jackson的配置类自定义。本来这个配置类是为了允许出现特殊字符/转义字符而设置的。其他没用,只好注释掉它了。
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
// Include.NON_EMPTY 属性为 空(””) 或者为 NULL 都不序列化,则返回的json是没有这个字段的。这样对移动端会更省流量
虽然定位到问题所在了,但是还是有疑惑:这个配置是当返回的json存在一个属性为null或者“”时,不进行序列化,并去掉这个字段。但是我后台返回给vue的菜单列表menuList是有size的,里面也没有空字段,不清楚为什么会引发配置的过滤,最终导致vue获取menu.length报错未定义。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/157287.html