解决Chrome中调试JS提示“Uncaught TypeError: Cannot use 'in' operator to search for”错误信息问题

       最近为了学习WebApi,将过去一个WinForm+WCF模式的系统的部分功能改造为一个B/S模式的应用,开发环境是vs2015,前端使用jquery-1.10.2.min.js中的$.ajax来调用WebApi方法,服务端用Newtonsoft把数据处理成JSON数据送到前端。运行调试过程中发现,Webapi方法成功调用并返回了json格式的字符串,前端接收到该数据后用$.each处理json数据时,在Chrome的调试状下发现错误信息:Uncaught TypeError: Cannot use 'in' operator to search for。以下是出错截图和前后端代码截图:

后台Webapi代码

前端JS代码

Chrome运行调试时menu中的数据

在网上查询产生这个错误信息的原因,说是这种情况是因为从服务端获取到的是一个json字符串,前端接收到这个json格式的字符串不可以直接用,要用JSON.parse()或$.parseJSON()处理成一个json对象才可以,先试一下吧。将ajax中的代码改为

然后在Chrome中运行调试,menu结果为

继续执行,没有错误信息,前端页面也可以正常显示。又试了一下JSON.parse()这种方式,同样有效。过去做项目多数是WinForm应用,后台服务呢也是WCF,这次也是为了能更熟练使用WebAPI,采用RESTful API这种模式来改造程序,过程中遇到的错误及解决方法记录下来,方便以后参考,也希望为遇到这个问题的其它人提供一个参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值