日期:2014-05-16  浏览次数:20820 次

请教为何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'),