读书人

请问为何ajax不执行success。用comple

发布时间: 2012-12-18 12:43:41 作者: rapoo

请教为何ajax不执行success。用complete也不执行!


$.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()不执行,请指教这是为什么?
[最优解释]
这说明之前数据库有被传上去,
一般是$.ajax这一步内有错,ajax没有到post这一步就错了
你可以在loginManager.jsp中做个日志看是否得到 提交的数据

如果 与form有关的话,请看看你的input用的是id还是name
一般用#的时候,请用id
[其他解释]

loginManager.jsp不要实现跳转,你是不是跳转了.只需要用out输出数据就可以了
out.print(data);//就是客户端要的数据


[其他解释]
应该是你跳转了吧。你不要跳转了。如果用form表单的话。
[其他解释]
async:false


[其他解释]
你用的是异步提交,没等验证成功的时候已经执行了按钮的提交事件,所以页面已经刷新
改成同步提交,按钮的提交事件必须等ajax验证结束后判断是否进行提交
[其他解释]
success: function(data) {
alert(data);
}
error: function(e) {
alert(e);
}
看看什么错误
[其他解释]
error也不会执行,直接跳过了
[其他解释]
$.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);
}
});

这样呢?
[其他解释]
为啥呀????????还是一样,没反应,只是把登陆页面刷新了!!!!!!!!!
[其他解释]
还会刷新页面的。。。
[其他解释]


开始把数据装在form表单里,现在把form去掉了,success会执行了!这是为什么呀?
[其他解释]
呃,先前说过了。数据是得到了的。在manager页面有打印出来。
[其他解释]
没搞jsp的路过
[其他解释]
按楼主这样说,还真是有点诡异
[其他解释]
问题不明确,请贴出调用代码!
[其他解释]
楼主改个方式试试看
data: "name=" + $('#rname').attr('value') + "&pwd=" + $('#pwd').attr('value'), 


data:{name:$('#rname').val(),pwd:$('#pwd).val()}



[其他解释]
引用:
为啥呀????????还是一样,没反应,只是把登陆页面刷新了!!!!!!!!!


呵呵,我也遇到了,受到启发,原来我是a链接里面有href,开始,href="",所以刷新了页面,刷新页面前进入了action,所以也获得了提交数据,但是还没来得及返回,就刷新了。改成href="#"就ok了
<a href='#' onclick= 'delMenuContent(cellvalue)>....
[其他解释]
虽然帖子老了点,但为了以后或许有人看,在这提供一种解决办法:
把dataType这个属性注释掉,alert返回的数据。原来是后台程序某处之前调试时echo了一些字符,这就破坏了返回浏览器的json格式,可能这样就触发不了success方法。
方法来自于:
http://hi.baidu.com/windzoone/blog/item/2f30521fdb6e7900314e152d.html
[其他解释]
引用:
你用的是异步提交,没等验证成功的时候已经执行了按钮的提交事件,所以页面已经刷新
改成同步提交,按钮的提交事件必须等ajax验证结束后判断是否进行提交


我的问题与zxn5211314描述的类似 ,已用这种方法解决

因为我用div弹出的窗口里使用ajax然而却异步调用了
//模拟点击关闭按钮的点击超链接
$(parent.window.document.body).find("a[role=button]").get(0).click();
所以不行 async:false解决

读书人网 >Ajax

热点推荐