ajax不执行success回调而是执行了error回调


Posted in Javascript onDecember 10, 2012

附上代码如下:
JScript code:

$.ajax({ 
type: "post", 
url: "jsp/loginManager.jsp", 
data: "name=" + $('#rname').attr('value') + "&pwd=" + $('#pwd').attr('value'), 
dataType: "text", 
success: function(data) { 
alert(data); 
} 
});

点击登陆,成功连接数据库并且查询到了值(在loginManager.jsp页面有用System.out.print()打印过查询到的值)。但success里的东西不执行。用过断点,当执行完dataType后,success直接跳出,里面的alert()不执行,这是为什么呢?
改了下代码,如下:
JScript code:
$.ajax({ 
type: "post", 
url: "jsp/loginManager.jsp", 
async: true, 
data: "name=" + $('#rname').attr('value') + "&pwd=" + $('#pwd').attr('value'), 
dataType: "text", 
success: function(data) { 
alert(data); 
}, 
error: function(e) { 
alert(e); 
} 
});

但是还是一样,没反应,只是把登陆页面刷新了!!!
针对上面只是把登录页面刷新了的问题,是a链接里有点小问题,原来我是a链接里面有href,开始,href=”",所以刷新了页面,刷新页面前进入了action,所以也获得了提交数据,但是还没来得及返回,就刷新了。改成href=”#”就ok了!正如:
<a href='#' onclick= ‘delMenuContent(cellvalue)>
还有一个原因是因为我用的是异步提交,没等验证成功的时候已经执行了按钮的提交事件,所以页面已经刷新,将其改成同步提交,按钮的提交事件必须等ajax验证结束后判断是否进行提交就可以解决这个问题了!

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

然后继续下载了几个jquery版本,如1.3.2,1.4.0的,指定dataType为json都不能执行success回调,只有小于1.3版本的才能执行success回调。

最后去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数据。说的是1.4+以上的,那为什么下载的1.3.2指定dataType为json时也不能执行success回调呢?

怪不得不执行,原来我返回的是{success:true,id:1} 这种不规则的字符串,不是严格的json格式,改成{"success":true,"id":"1"} 就可以正常执行success回调了。


JSON格式总结下,详细的去json.org 查看。

1)键名称:用双引号 括起

2)字符串:用使用双引号 括起

3)数字,布尔类型不需要 使用双引号 括起

Javascript 相关文章推荐
javascript中删除指定数组中指定的元素的代码
Feb 12 Javascript
jquery 使用点滴函数代码
May 20 Javascript
Jquery中使用setInterval和setTimeout的方法
Apr 08 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
Jun 13 Javascript
jquery $.each() 使用小探
Aug 23 Javascript
JS实现日期加减的方法
Nov 29 Javascript
js判断客户端是iOS还是Android等移动终端的方法
Dec 11 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
Jun 29 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
Nov 25 Javascript
AngularJS ng-app 指令实例详解
Jul 30 Javascript
详解Angular中通过$location获取地址栏的参数
Aug 02 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
May 07 Javascript
解决js正则匹配换行问题实现代码
Dec 10 #Javascript
解决jquery异步按一定的时间间隔刷新问题
Dec 10 #Javascript
怎样在JavaScript里写一个swing把数据插入数据库
Dec 10 #Javascript
js里怎么取select标签里的值并修改
Dec 10 #Javascript
如何将JS的变量值传递给ASP变量
Dec 10 #Javascript
用jquery实现点击栏目背景色改变
Dec 10 #Javascript
jquery应该如何来设置改变按钮input的onclick事件
Dec 10 #Javascript
You might like
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
PHP+jQuery+Ajax实现用户登录与退出
2015/04/27 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
JavaScript中文件上传API详解
2016/04/01 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
python搭建简易服务器分析与实现
2012/12/15 Python
python生成词云的实现方法(推荐)
2017/06/13 Python
python dict 相同key 合并value的实例
2019/01/21 Python
python属于解释型语言么
2020/06/15 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
Python文件操作的面试题
2013/06/22 面试题
科室工作个人总结的自我评价
2013/10/29 职场文书
自我鉴定模板
2013/10/29 职场文书
专科文秘应届生求职信
2013/11/18 职场文书
微笑服务演讲稿
2014/05/13 职场文书
贷款担保书范文
2014/05/13 职场文书
工作收入证明模板
2014/10/10 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
论语读书笔记
2015/06/26 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫