Posted in Javascript onJanuary 11, 2011
感觉很莫名奇妙,前一阵子还好好的,怎么现在就突然报错了? 程序根本没动。于是开始跟踪分析,请求、返回的内容。。。最后判断是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的解析采取了更严格的方法,所以要求数据必须书写的与国际规范一致。
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@