问题描述: 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一个坑爹的问题的更多相关文章

  1. 项目中的一个JQuery ajax实现案例

    /**  * brief 这些代码用于在线制图中 attention author <list of authors> <date> begin modify by  * nu ...

  2. 分享一个手机端好用的jquery ajax分页类

    分享一个手机端好用的jquery ajax分页类 jquery-ias.min.js 1,引入jquery-ias.min.js 2,调用ajax分页 <script type="te ...

  3. 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代码方式来 ...

  4. 使用jQuery Ajax功能的时候需要注意的一个问题

    每次jquery的Ajax请求都会创建一个xmlHttprequest对象,理论上讲,长连接(页面需要和服务器保持长连接,而且在连接超时后需要重新请求连接)的请求是一个无限递归,请求数量是非常大的,但 ...

  5. jquery ajax中支持哪些返回类型以及js中判断一个类型常用的方法?

    1 jquery ajax中支持哪些返回类型在JQuery中,AJAX有三种实现方式:$.ajax() , $.post , $.get(). 预期服务器返回的数据类型.如果不指定,jQuery 将自 ...

  6. Jquery ajax json 不执行success的原因 坑爹

    最近在看jQuery的API文档,在使用到jQuery的ajax时,如果指定了dataType为json,老是不执行success回调,而是执行了error回调函数,极度郁闷.后面改为1.2.6版本可 ...

  7. [经验] - JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案

    最近在开发WSS RESTful服务的时候, 碰到了这些个纠结的问题. 在网上查找了半天, 找到n多种解决方案, 但是都是部分的, 要么是没有跨域的情况, 要么是没有post的情况, 要么不是用WCF ...

  8. JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案

    JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案 最近在开发WSS RESTful服务的时候, 碰到了这些个纠 ...

  9. IE8/9 JQuery.Ajax 上传文件无效

    IE8/9 JQuery.Ajax 上传文件有两个限制: 使用 JQuery.Ajax 无法上传文件(因为无法使用 FormData,FormData 是 HTML5 的一个特性,IE8/9 不支持) ...

随机推荐

  1. C#下IOC/依赖注入框架Grace介绍

    对依赖注入或控制反转不了解的童鞋请先自行学习一下这一设计,这里直接介绍项目和实现步骤. Grace是一个开源.轻巧.易用同时特性丰富.性能优秀的依赖注入容器框架.从这篇IOC容器评测文章找到的Grac ...

  2. java之mybatis之helloworld

    1. MyBatis 是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架. MyBatis几乎消除了所有的 JDBC 代码,也基本不需要手工去设置参数和获取检索结果. MyBatis几乎能够 ...

  3. 使用jconsole分析内存情况

    http://www.cnblogs.com/dava/p/6686436.html

  4. test aria2 on windows platform

    import 'dart:io'; import 'dart:convert'; import 'package:path/path.dart'; import 'package:web_socket ...

  5. 用java语言将数据库中的数据表转换为xml文件的通用程序(细化)

    转自:https://www.cnblogs.com/wudage/p/7650685.html 总是在网络上copy别人的源代码,今天我也贴出自己今天写的源码,相信这个程序会对大家在平时的工作中需要 ...

  6. 内核加载错误module license

    出现如下错误: module_name: Unknown symbol "symbol_name" tail /var/log/messages查看具体错误 出现如下错误: Unk ...

  7. Node: 开发命令行程序英文版 (Create Your Own CLI)

    CLI, as an abbreviation of Command-line Interface, can receive user's input and give an immediate re ...

  8. HTTPS安全通信过程

         前言:本文是的第三篇文章.第一篇文章<常见加密算法特点及适用场景>,介绍了常见加密算法及其适用的场景,对加密算法做一个总体的概述.第二篇文章<非对称加密算法-RSA算法&g ...

  9. Web数据库架构

    Web服务器的基本操作如图下图所示: 这个系统由两个对象组成:一个Web浏览器和一个Web服务器.它们之间需要通信连接.Web浏览器向服务器发出请求.服务器返回一个响应.这种架构非常适合服务器发布静态 ...

  10. 团队最后一次——冲刺+Beta发布

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign/ 这个作业要求在哪里 https:// ...