前一段时间接触了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代码:

 $(document).ready(function(){
$("a").click(function(){
var c_url = 'http://localhost/test/check.php';
var jj;
$.post("db.php",{id:"5"});
$.post("check.php",{},function(data){jj=data;$("#tname").html(data);}).success(function() { alert("second success"); })
.error(function(a) { alert("error"+a.ResponseText);alert(json_last_error ()); })
.complete(function() { alert("complete"); });
$("#tname").html(data);
}); });

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

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

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

ajax中的post方法中回调函数不执行的问题的更多相关文章

  1. $.getJSON('url',function(data){}) 中回调函数不执行

    $.getJSON('url',function(data){}) 中回调函数不执行 url 中的 json 格式不正确 ,浏览器返回并没有报错 {'湖北':[114.11438,30.849429] ...

  2. array_reduce方法用回调函数迭代地将对数组的值进行操作

    在处理php数组的时候,有一种需求特别的频繁,如下二维数组: $arr = array( 1=>array( 'id' => 5, 'name' => '张三' ), 2=>a ...

  3. setInterval调用ajax回调函数不执行的问题

    setInterval调用ajax回调函数不执行 1.首先检查你的setInterval()函数写法是否正确 参考写法 // 检查是否支付成功 var isPayRequest=false; var ...

  4. Jquery ajax回调函数不执行

    ajax如下: $.post( "${pageContext.request.contextPath}/deptHead_assign.action", {"studen ...

  5. 为什么局部内部类中访问同一方法中的变量,该变量一定要是final修饰的

     最近有一个疑惑:为什么局部内部类中访问同一方法中的变量,该变量一定要是final修饰的         首先,我们看一个局部内部类的例子:             class OutClass {  ...

  6. $.getJSON() 回调函数没有执行的原因

    $.getJSON() 方法使用 AJAX 的 HTTP GET 请求获取 JSON 数据. 语法 $.getJSON(url,data,success(data,status,xhr)) url必填 ...

  7. getJSON回调函数不执行问题?

    利用getJSON异步请求时,回调函数不执行,不知道是什么问题? php 返回数据 header("Content-type:text/json"); echo json_enco ...

  8. scrapy yield 回调函数不执行解决方案

    yield Request(url=parse.urljoin(response.url, p_url),callback=self.parse_detail) 回调函数不执行: 加上: dont_f ...

  9. 详解C#中通过委托来实现回调函数功能的方法

    委托:类型安全的指向函数的指针 使用步骤 1:声明一个委托 delegate string DelString(string s) 2:定义一个委托变量 DelString del = new Del ...

随机推荐

  1. AVFoundation视频流处理

    框架 首先我们从整体对所需框架做个初步了解. AVFoundation在相关框架栈中的的位置: 为了捕捉视频,我们需要这样几种类(与其它的子类). AVCaptureDevice 代表了输入设备,例如 ...

  2. iOS 8 CloudKit上手教程

    CloudKit,是苹果最新推出的基于iCloud的一个云端数据存储服务,提供了低成本的云存储并能作为一个后端服务通过用户们的iCloud账号分享其应用数据. CloudKit主要由两个部分组成: 一 ...

  3. CollatingOfData 之 JsonHelper

    1 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System. ...

  4. css笔记10:多个id选择器/类选择器包含相同部分问题的探讨

    有些时候,我们可以将多个class选择器或者id选择器,html选择器的共同部分提取出来,写在一起,这样的好处是是可以简化css文件 1.首先我们先看一段代码.css,如下: @charset &qu ...

  5. Android(java)学习笔记96:如何改变spinner系统自带的字体和颜色

    1.首先我们要知道spinner系统自带字体和颜色本质: 原生的Spring 控件是无法更改字体和颜色的... 从下面的代码可以看出...红色的标注显示使用的是Android默认的布局.. Spinn ...

  6. FineUploader 学习笔记

    FineUploader既是开源的又是收费的,这个没搞懂. 先看效果:

  7. ThreadPoolExecutor运转机制详解

    ThreadPoolExecutor运转机制详解 - 走向架构师之路 - 博客频道 - CSDN.NET 最近发现几起对ThreadPoolExecutor的误用,其中包括自己,发现都是因为没有仔细看 ...

  8. Java Concurrency - 线程执行器

    Usually, when you develop a simple, concurrent-programming application in Java, you create some Runn ...

  9. jquery 事件委托绑定click的使用方法

    直接绑定ul的click事件  代码如下 复制代码 $("ul").click(function(e) 例子  代码如下 复制代码 $(function(){ //$(" ...

  10. Java垃圾回收介绍(译)

    在Java中,对象内存空间的分配与回收是由JVM中的垃圾回收进程自动完成的.与C语言不同的是,在Java中开发者不需要专门为垃圾回收写代码.这是使Java流行的众多特征之一,也帮助了程序员写出了更好的 ...