问题原因:
昨天遇到了一个问题。就是用ajax从后台查询数据时,返回信息无法显示,经过提示发现是IE控制台提示: JSON is not defined 错误。
而且这个问题在本人自己的电脑上是不存在的。利用IE的提示工具调试发现:当浏览器模式为 IE8及以上版本时不会出现此问题。但经过联系客户发现其使用的IE版本也是8。
当时感觉很奇怪。但后来发现客户的 IE8 使用了兼容模式,导致了IE使用较低版本的内核解析网页,引发了此问题。
解决方案:
解决此问题的方法比较简单,并且有多种方式。比如使用 eval() 函数。
但是,比较推荐的是引入jquery,使用$.parseJSON()方法来解析。
或者引入 json2.js 来解决。
json2.js 的GitHub地址: https://github.com/douglascrockford/JSON-js
json2会在window下定义JSON对象,并且除了原生JSON对象提供的parse,stringify 函数外,还提供了更加丰富的功能。
详见json2的说明文档。