jQuery1.4+版本 ajax 不执行success回调函数,却进入error回调函数

探讨jQuery1.4+版本中AJAX调用指定dataType为json时,不执行success回调而进入error回调的问题。指出jQuery1.4之后版本对JSON格式要求更加严格,并提供了解决方案。
摘要由CSDN通过智能技术生成
jQuery1.4+版本 ajax 不执行success回调函数,却进入error回调函数
在jQuery1.4.2版本在使用ajax时存在一个严重问题,如果指定dataType为json,竟然死活不进入success回调函数,值进入error回调函数里面,而其他版本,如1.2.6是正常的。

示例代码如下:
jQuery.ajax({
url: "text.html",
type: "POST",
data: strjson,
success:function(obj){alert(obj)},
error:function(){alert('发生错误')},
complete: function(obj) {
if(obj.status == 200)alert('有效');
else alert('无效');
}
});

在jquery的网站找到了在线的api文档看了下,地址:http://api.jquery.com/jQuery.ajax/,发现dataType如下的说明
  "json": Evaluates the response as JSON and returns a JavaScript object. In jQuery 1.4 the JSON data is parsed in a strict manner; any malformed JSON is rejected and a parse error is thrown. (See json.org for more information on proper JSON formatting.)

  原来是jquery1.4版本以后对json格式要求非常严格了,要满足json.org网站定义的格式才能执行success回调,其他怪异模式的json字符串都会出错,无法解析返回json数据。说的是1.4+以上的,那为什么下载的1.3.2指定dataType为json时也不能执行success回调呢?

所以在使用ajax的时候需要注意json格式的返回数据时候严格!

正确返回的obj格式为:{"success":true,"id":"1"}就可以正常执行success回调了。
  JSON格式总结下,详细的去json.org查看。
  1)键名称:用双引号括起
  2)字符串:用使用双引号括起
  3)数字,布尔类型不需要使用双引号括起
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值