jquery ajax一个坑爹的问题
问题描述: 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方法是必须的,虽然看似没什么作用,但是偶尔的错误提示还是有必要的。
jquery ajax一个坑爹的问题的更多相关文章
- 项目中的一个JQuery ajax实现案例
/** * brief 这些代码用于在线制图中 attention author <list of authors> <date> begin modify by * nu ...
- 分享一个手机端好用的jquery ajax分页类
分享一个手机端好用的jquery ajax分页类 jquery-ias.min.js 1,引入jquery-ias.min.js 2,调用ajax分页 <script type="te ...
- WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]
WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...
- 使用jQuery Ajax功能的时候需要注意的一个问题
每次jquery的Ajax请求都会创建一个xmlHttprequest对象,理论上讲,长连接(页面需要和服务器保持长连接,而且在连接超时后需要重新请求连接)的请求是一个无限递归,请求数量是非常大的,但 ...
- jquery ajax中支持哪些返回类型以及js中判断一个类型常用的方法?
1 jquery ajax中支持哪些返回类型在JQuery中,AJAX有三种实现方式:$.ajax() , $.post , $.get(). 预期服务器返回的数据类型.如果不指定,jQuery 将自 ...
- Jquery ajax json 不执行success的原因 坑爹
最近在看jQuery的API文档,在使用到jQuery的ajax时,如果指定了dataType为json,老是不执行success回调,而是执行了error回调函数,极度郁闷.后面改为1.2.6版本可 ...
- [经验] - JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
最近在开发WSS RESTful服务的时候, 碰到了这些个纠结的问题. 在网上查找了半天, 找到n多种解决方案, 但是都是部分的, 要么是没有跨域的情况, 要么是没有post的情况, 要么不是用WCF ...
- JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案 最近在开发WSS RESTful服务的时候, 碰到了这些个纠 ...
- IE8/9 JQuery.Ajax 上传文件无效
IE8/9 JQuery.Ajax 上传文件有两个限制: 使用 JQuery.Ajax 无法上传文件(因为无法使用 FormData,FormData 是 HTML5 的一个特性,IE8/9 不支持) ...
随机推荐
- 1.将控制器添加到 ASP.NET Core MVC 应用
模型-视图-控制器 (MVC) 体系结构模式将应用分成 3 个主要组件:模型 (M).视图 (V) 和控制器 (C). 模型(M):表示应用数据的类. 模型类使用验证逻辑来对该数据强制实施业务规则. ...
- Java之路---Day04
2019-10-18-21:35:36 面向对象 学面向对象前要先知道什么叫面向过程,了解了什么叫面向过程才容易理解面向对象 面向过程(强调步骤) 概念:当需要实现一个功能的时候,每一个具体的步骤都要 ...
- 【i.MX6UL/i.MX6ULL开发常见问题】单独编译内核,uboot生成很多文件,具体用哪一个?
[i.MX6UL/i.MX6ULL开发常见问题]2.3单独编译内核,uboot生成很多文件,具体用哪一个? 答:内核编译出来的文件是~/MYiR-imx-Linux/arch/arm/boot/目录下 ...
- vim插件(vim-emmet)安装步骤
vim安装插件 vim-emmetvim-emmet网址 https://www.vim.org/scripts/script.php?script_id=2981pathogen.vim网址 ...
- springboot-实现log4j的AOP切面
参考链接: https://www.cnblogs.com/liaojie970/p/7883687.html https://blog.csdn.net/autfish/article/detail ...
- Hive Lateral View
一.简介 1.Lateral View 用于和UDTF函数[explode,split]结合来使用. 2.首先通过UDTF函数将数据拆分成多行,再将多行结果组合成一个支持别名的虚拟表. 3.主要解决在 ...
- 【等待事件】等待事件系列(5.1)--Enqueue(队列等待)
[等待事件]等待事件系列(5.1)--Enqueue(队列等待) 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可 ...
- Linux 常见 RAID 及软 RAID 创建
RAID可以大幅度的提高磁盘性能,以及可靠性,这么好的技术怎么能不掌握呢!此篇介绍一些常见RAID,及其在Linux上的软RAID创建方法. mdadm 创建软RAID mdadm -C -v /de ...
- Termux和Ubuntu建立ssh连接
1 本机环境 Android:Termux v0.77 作为客户端 Linux:Ubuntu 19.10 作为服务器 两者处于同一局域网下 2 ssh安装 2.1 Termux pkg install ...
- Mysql中innodb和myisam
innodb和myisam两种存储引擎的区别 1.事务和外键 1)InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID.如果应用中需要执行大量的INSER ...