近段时间作项目,在项目使用了ajax技术,遇到了一个奇怪的问题:"$.ajax返回的JSON格式的数据没法执行success",代码是这样写的:jquery
1 $.ajax({ 2 .. 3 dataType:'json', 4 ... 5 success:function(jsonData){ 6 //不执行success 7 }, 8 error:function(error){ 9 //老是执行这个error 10 } 11 });
百思不得其解啊,为何会这样子呢?检查了一下返回的JSON字符串,我以为JSON字符串的格式应该没有问题的,因而在网上查了一下,发现有还真有人遇到了和我同样的问题,找出缘由所在"是由于我指定了dataType:'json',这样指定以后,对Json格式的要求就很是严格起来了,起初个人json格式是这样写的:"{result:{\"success\":\"true\",\"meg\":\"success\"}}",可这样写不行,得改为这样写:"{\"success\":true,\"mesg\":\"success\"}",若是说是bool类型,则不用加引号,其它的键/值都须要加引号。jquery 1.4之后对json格式变严格了,也就是说必需要这种格式的{"键":"值","键":"值"};像原来的{键:值,键:值}和{'键':'值','键':'值'}这种都是错误的,不合标准,因此jquery返回error。之前没有注意到这样的问题,此次遇到了,也找到了解决办法,在此记录一下!ajax