首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

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

2012-12-18 
请教为何ajax不执行success。用complete也不执行!$.ajax({type: post,url: jsp/loginManager.jsp,data:

请教为何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解决

热点排行