转载自http://www.cnblogs.com/sky_Great/archive/2013/01/18/2866861.html 并进行整理:

今天遇到了一个极其奇怪的问题,用各种工具检查都能看到服务器端返回了200,数据也是正常的,但是$.ajax 始终进不到success,郁闷啊,在网上找,

常见问题场景:
1.跨域;
2. $.ajax 没设置 dataType,及服务器端没设置respon.ContentType
3. Json结构错误;

第一第二很快就排除了,到了第三重新度了Json的定义:http://www.json.org/json-zh.html,重新复习了下Json的定义:
键值对:键为string,值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

原来定义的类型是
{isSuccess:true,message:'good'}
按照键的定义应该修改为
{'isSuccess':true,'message':'good'}
继续执行还不行,按照值的定义修改:
{'isSuccess':true,'message':"good"}
彻底郁闷了,这还不行
后面放下这里仔细看了对Json键值的规范,值要定义为带双引号的字符串,为什么是双引号,那么键呢,是不是需要?换成
{"isSuccess":true,"message":"good"}
直接通了。
Json的格式跟Javascript里面对象的区别就在这里,Json要求键,值必须是双引号!!

05-11 16:55