undefined is not an object

页面报这个错,是因为后台在某个字段为空的时候,后台不是返回空而是直接不返回这个字段,以dict_data 字段为例

正常情况下后台返回{ "type":" A" ,"dict_data" :[ { "name": "1", "age": "1" }]},特殊情况当这个字段为空时,后台返回{ "type": "A"},并没有返回"dict_data":[ ]

而前端页面代码没有做 dict_data  != undefined 的判断,且在for循环里引用 CnName = dict_data[k].name;这样就会导致前端页面对象使用点操作获取属性时找不到该字段,从而报“undefined is not an object”错误。

 

解决办法有两种,一种是当某字段为空时,后台要返回该字段,只是内容为空,而不是直接不返回该字段

第二种是前端每次在通过点获取对象属性时,都做一次该属性 != undefined校验,并将其交易放在try{}catch(e){ alert(e) }块里,即使内部报错也不影响外面的其他代码

 

posted @   海绵宝宝y  阅读(2809)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示