|
最近正在做一个系统,测试组那边不停的报告bug:后台、前台各种列表报告js弹出窗错误,内容仅仅是一句“pareseerror”!
感觉很莫名奇妙,前一阵子还好好的,怎么现在就突然报错了? 程序根本没动。于是开始跟踪分析,请求、返回的内容。。。最后判断是jquery
不承认返回的内容是json格式。当时返回的内容是: 复制代码 代码如下: {'keylist':[ {'tid':'13',"sumnum':'1'},{'tid':'21','sumnum':'1'} ]} 经过仔细检查也没发现任何问题,返回流的字符已经设成utf-8,内容用ff检测,ff也能识别成json格式,但此时还是报“pareseerror”错误。
看着看着代码,突然发现,当前返回的内容,都是用英文单引号括起来的,依稀记得最严格的写法应该用英文双引号,于是立即修改系统底层库(c#)
的json数据生成方法,全部改成英文双引号,改后返回的内容如下: 复制代码 代码如下: {"keylist":[ {"tid":"13","sumnum":"1"},{"tid":"21","sumnum":"1"} ]} 结果放到测试服一试,问题解决! 我真&*^#%@$@
总结:仔细回想了一下,前些日子因为一些原因用jquery最新版本替换了团购系统中的旧版本,当时没想到这种情况。后来从网上查到资料,jquery在1.3.x版本后对json的解析采取了更严格的方法,所以要求数据必须书写的与国际规范一致。 |
|