对于做Javaweb开发的小伙伴们来说,ajax应该很熟悉吧,每一个网站的数据交互都有可能用到它,那么,你们知道ajax的回调函数怎么用吗?今天我们就来讲一下ajax的回调函数。
首先我们要知道什么是回调函数?
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
回调方法 是 任何一个 被 以该回调方法为其第一个参数 的 其它方法 调用 的方法。很多时候,回调是一个当某些事件发生时被调用的方法。
Ajax的回调函数,如下:
beforeSend
在发送请求之前调用,并且传入一个 XMLHttpRequest 作为参数。
error
在请求出错时调用。传入 XMLHttpRequest 对象,描述错误类型的字符串以及一个异常对象(如果有的话)
dataFilter
在请求成功之后调用。传入返回的数据以及 "dataType" 参数的值。并且必须返回新的数据(可能是处理过的)传递给 success 回调函数。
success
当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。
complete
当请求完成之后调用这个函数,无论成功或失败。传入 XMLHttpRequest 对象,以及一个包含成功或错误代码的字符串。
在与后台交互的时候,一般是使用到jquery的$.ajax()方法来请求数据。回调函数用的比较多的是success,但是beforeSend、complete、error函数也是很有用的。
例:
$.ajax({ url: "pro/test.php", type: "post", timeout: 5000, async: true, cache: true, data: $('#jsForm').serialize(), dataType: "json", contentType: "application/x-www-form-urlencoded", beforeSend: function(XMLHttpRequest){ console.log(this); $("#inp").val("正在获取数据..."); }, success: function(data){ console.log(data); $(".display").html("获取到的数据:"); $(".display").append("总条数:"+data.data.all_count); $("#inp").val("点击获取数据"); }, complete: function(XMLHttpRequest,textStatus){ if(textStatus=='timeout'){ var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp"); xmlhttp.abort(); $(".box").html("网络超时!"); } $("#inp").val("点击获取数据"); }, error: function(XMLHttpRequest, textStatus){ console.log(XMLHttpRequest); //XMLHttpRequest.responseText XMLHttpRequest.status XMLHttpRequest.readyState console.log(textStatus); $(".box").html("服务器错误!"); } });
这就是关于ajax回调函数的一些方法,更多相关内容请持续关注本站。