作家
登录

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

作者: 来源:www.28hudong.com 2013-03-30 00:18:22 阅读 我要评论

附上代码如下: 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)数字,布尔类型不需要 使用双引号 括起

  推荐阅读

  十个迅速提升JQuery性能让你的JQuery跑得更快

本文提供即刻提升你的脚本性能的十个步骤。不用担心,这并不是什么高深的技巧。人人皆可运用!这些技巧包括: 使用最新版本 合并、最小化脚本 用for替代each 用ID替代class选择器 给选择器指定前后文 建立缓存 避免>>>详细阅读


本文标题:ajax不执行success回调而是执行了error回调

地址:http://www.17bianji.com/kaifa2/JS/22821.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)