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 相关文章推荐
offsetHeight在OnLoad中获取为0的现象
Jul 22 Javascript
js toFixed()方法的重写实现精度的统一
Mar 06 Javascript
详谈jQuery中的this和$(this)
Nov 13 Javascript
微信小程序 网络API发起请求详解
Nov 09 Javascript
JS实现自动阅读单词(有道单词本添加功能)
Nov 14 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
Jun 09 jQuery
js实现手机web图片左右滑动效果
Dec 29 Javascript
详解基于vue-cli配置移动端自适应
Jan 13 Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 Javascript
vue中的.$mount('#app')手动挂载操作
Sep 02 Javascript
图解JS原型和原型链实现原理
Sep 15 Javascript
vue 实现弹窗关闭后刷新效果
Apr 08 Vue.js
解决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学习之数组的定义和填充
2011/04/17 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
JavaScript 对象模型 执行模型
2010/10/15 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
基于Proxy的小程序状态管理实现
2019/06/14 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
Python操作MySQL简单实现方法
2015/01/26 Python
Python分支结构(switch)操作简介
2018/01/17 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
python操作小程序云数据库实现简单的增删改查功能
2019/06/06 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
工程部主管岗位职责
2013/11/17 职场文书
银行批评与自我批评
2014/02/10 职场文书
地方白酒代理协议书
2014/10/25 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
安全温馨提示语大全
2015/07/14 职场文书
python爬虫请求库httpx和parsel解析库的使用测评
2021/05/10 Python
基于angular实现树形二级表格
2021/10/16 Javascript
httpclient调用远程接口的方法
2022/08/14 Java/Android