zoukankan      html  css  js  c++  java
  • ajax中的post方法中回调函数不执行的问题

      前一段时间接触了JQuery Ajax中的.post()方法和.get()方法,感觉到ajax的简洁和强大,当用到.post()方法时,去W3上查找相关的使用方法,感觉十分简单,用法很明了,然后,直接根据自己的需要(js将数据post给php写入数据库,然后返回给js一个值)开写了,写完了,运行,竟然不行!然后仔细地对比我的代码和demo的不同,为了查找错误,将我的代码写的几乎和demo相同了,但是还是无法在js中获得php的数据。

      这里先回忆一下.post()方法。

      

    jQuery.post(url,data,success(data, textStatus, jqXHR),dataType)
    参数 描述
    url 将请求发送到的url
    data 发送的数据(可选)
    success(data, textStatus, jqXHR)

    执行成功后的回调函数,参数均可选,data是返回的数据,

    textStatus是函数的状态,也可以加入jqXHR得到函数

    的返回状态

    dataType 预期的服务器相应的数据类型

      经过仔细的对比,发现js的代码已经不能再改了,然后我开始看php的代码,发现,跟网上唯一不同的是,我增加了一个插入数据库的操作,难道是这个的原因?我把连接数据库、插入数据库的操作通通注释掉了以后,成功了~~~(必然啊,跟网上的demo不能再一样了)。

      这是为什么呢,然后开始在网上查资料,突然看到了post()函数的时间问题,大体意思是,当我url连接到插入数据库的php界面时,需要一定的执行时间插入数据库,当我的click函数执行了,刷新了之后,回调函数还没有机会执行post就完成了,所以无论我怎么刷新都没变化。

      

    $.ajax({url:c_url,
           timeout:3000,
          success: function(data){alert("aaa");}
          });

      加入超时限制,测试之后,发现function也是能执行的,很明显是超时的问题。插入数据库拖慢了post执行成功回调的时间,于是,我将连接数据库和插入数据库单独加入一个新建的php页面,然后,可以得到数据了。

      这是我最后的js代码:

     1 $(document).ready(function(){
     2                      $("a").click(function(){
     3                             var c_url = 'http://localhost/test/check.php'; 
     4                             var jj;
     5                             $.post("db.php",{id:"5"});    
     6                             $.post("check.php",{},function(data){jj=data;$("#tname").html(data);}).success(function() { alert("second success"); })
     7                     .error(function(a) { alert("error"+a.ResponseText);alert(json_last_error ()); })
     8                     .complete(function() { alert("complete"); });
     9                                           $("#tname").html(data);
    10                                          });
    11                                         
    12                           });

      其中,check.php只有单独定义的一个数组返回用于测试是否收到。

      至此,算是结束了,不过这样执行,html方法改变了标签内容,但是在页面上显示一下就突然刷新没了,还没有解决。希望各位大神指点~

      第一次接触ajax就碰上了这样的问题,以后还是要系统地学一下。

  • 相关阅读:
    div布局改进treeview导航
    WEB框架研究笔记八(HIBERNATE)
    WEB框架研究笔记四(Spring Framework)
    WEB框架研究笔记二(Extjs调用Struts)
    WEB框架研究笔记九(PowerDesigner)
    WEB框架研究笔记七(Spring2+struts2)
    WEB框架研究笔记十(JPA)
    WEB框架研究笔记11(第一阶段完成)
    WEB框架研究笔记五(Spring Aop)
    WEB框架研究笔记三(连接数据库)
  • 原文地址:https://www.cnblogs.com/wktwj/p/4037207.html
Copyright © 2011-2022 走看看