jquery ajax一个坑爹的问题
2024-09-20 00:50:13
问题描述: 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方法是必须的,虽然看似没什么作用,但是偶尔的错误提示还是有必要的。
最新文章
- Android的系统体系结构
- 【转】javascript变量声明 及作用域
- 3dmax渲染插件,生成2.5d瓦片
- How Tomcat works — 四、tomcat启动(3)
- struts1+spring+myeclipse +cxf 开发webservice以及普通java应用调用webservice的实例
- [CareerCup] 11.3 Search in Rotated Sorted Array 在旋转有序矩阵中搜索
- Java基础-常量
- uniform 中checkbox通过jquery 选中
- bzoj1058: [ZJOI2007]报表统计
- .NET学习笔记(3) — VisualStudio使用总结
- IT第八天 - 类的应用、debug、项目开发模式优化
- IdentityServer4 实现 OAuth 2.0(密码模式 - HTTP Post 方式)
- spool命令、创建一个表,创建而且copy表,查看别的用户下的表,rowid行地址 索引的时候使用,表的增删改查,删除表,oracle的回收站
- 浅析C语言中的整形类型
- Python:序列的增量赋值
- 会跳高的字体插件jquery.beattext.js
- Windows 10(UWP)开发技巧 - PageUserControl
- php之code tips
- HDu4794 斐波那契循环节
- day 57 Bootstrap 第一天