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 @ 2023-01-04 17:27  海绵宝宝y  阅读(2751)  评论(0编辑  收藏  举报