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 相关文章推荐
JS实现标签页效果(配合css)
Apr 03 Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
Jun 16 Javascript
javascript实现按回车键切换焦点
Feb 09 Javascript
使用JavaScript实现旋转的彩圈特效
Jun 23 Javascript
基于javascript实现样式清新图片轮播特效
Mar 30 Javascript
JavaScript注入漏洞的原理及防范(详解)
Dec 04 Javascript
Vue 换肤的示例实践
Jan 23 Javascript
浅谈实现vue2.0响应式的基本思路
Feb 13 Javascript
React+Redux实现简单的待办事项列表ToDoList
Sep 29 Javascript
Vue数字输入框组件使用方法详解
Feb 10 Javascript
Web应用开发TypeScript使用详解
May 25 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网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
程序员的表白神器“520”大声喊出来
2016/05/20 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
thinkPHP框架RBAC实现原理分析
2019/02/01 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
js取得url地址参数实例
2013/02/22 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
关于Javascript加载执行优化的研究报告
2014/12/16 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
vue2 中如何实现动态表单增删改查实例
2017/06/09 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
Python多线程下载文件的方法
2015/07/10 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
梅西酒窖:Macy’s Wine Cellar
2018/01/07 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
党员三严三实心得体会
2014/10/13 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
Java实现多线程聊天室
2021/06/26 Java/Android
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers