问题描述: jquery ajax dataType为json时,如果json数据不严格,不进入success方法,控制台也不会报错。

data.json

 {"result":"0","data":2016-04-27}

ajax常规写法代码:

 $.ajax({
url: 'data.json',
type: 'POST',
dataType: 'json',
success: function(data){
console.log(data);
}
});

以上代码可能是大多数coder的常用写法,如果服务器返回的是如data.json那样的数据格式,这段代码无任何问题,控制台也没报错,但是就不会执行success方法(小小的一个问题,花费了大半个小时才找出来,不知道各位看官没有踩到这坑)。如果对这个json数据调用json格式化方法,则会报错:

 JSON.parse('{"result":"0","data":2016-04-27}');//控制台报错:SyntaxError: JSON.parse: expected ',' or '}' after property value in object at line 1 column 26 of the JSON data

在遇到这个问题之前,一直认为error方法没任何用处,但是如果这段代码加上error方法,则会提示错误:

 $.ajax({
url: 'data.json',
type: 'POST',
dataType: 'json',
success: function(data){
console.log(123);
},
error: function(){
console.log("数据错误");//控制台输出:"数据错误"
}
});

推荐promise写法:

 $.ajax({
url: 'data.json',
type: 'POST',
dataType: 'json'
}).done(function() {
console.log("success");
}).fail(function() {
console.log("error");
});

总结:遇到这个坑之后,告诉我一个道理,error方法是必须的,虽然看似没什么作用,但是偶尔的错误提示还是有必要的。

最新文章

  1. Android的系统体系结构
  2. 【转】javascript变量声明 及作用域
  3. 3dmax渲染插件,生成2.5d瓦片
  4. How Tomcat works — 四、tomcat启动(3)
  5. struts1+spring+myeclipse +cxf 开发webservice以及普通java应用调用webservice的实例
  6. [CareerCup] 11.3 Search in Rotated Sorted Array 在旋转有序矩阵中搜索
  7. Java基础-常量
  8. uniform 中checkbox通过jquery 选中
  9. bzoj1058: [ZJOI2007]报表统计
  10. .NET学习笔记(3) — VisualStudio使用总结
  11. IT第八天 - 类的应用、debug、项目开发模式优化
  12. IdentityServer4 实现 OAuth 2.0(密码模式 - HTTP Post 方式)
  13. spool命令、创建一个表,创建而且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站
  14. 浅析C语言中的整形类型
  15. Python:序列的增量赋值
  16. 会跳高的字体插件jquery.beattext.js
  17. Windows 10(UWP)开发技巧 - PageUserControl
  18. php之code tips
  19. HDu4794 斐波那契循环节
  20. day 57 Bootstrap 第一天

热门文章

  1. .net core 使用swagger接口描述
  2. JavaWeb 之 JSTL 标签
  3. 深入理解jvm--分代回收算法通俗理解
  4. oracle 如何预估将要创建的索引的大小
  5. 身份证验证PHP类
  6. Redis中如何发现并优化big key?
  7. CentOS7源码安装Redis5.0.4非关系型数据库
  8. Hoax or what UVA - 11136(multiset的应用)
  9. 洛谷 P2725 邮票题解
  10. Python的logging模块基本用法