Query对Ajax操作进行了封装,在jQuery中$.ajax()方法属于最底层的方法,
第2层是load(),$.get()和$.post()方法 第三层是$.getScript()和$.getJSON()
方法。首先介绍第二层的方法
载入html文档
load()方法是jquery中最为简单和常用的Ajax方法 能载入远程的HTML代码并
插入DOM中 结构为:
load(url [,data] [,callback])
参数说明:
url 类型String 请求HTML页面的URL地址
data(可选) 类型OBJECT 发送至服务器的Key/value数据
callback(可选) 类型function 请求完成时的回调函数,无论请求成功或失败
- <input type="button" id="send" value="Ajax获取" />
- <div class="comment">已有评论:</div>
- <div id="resText"></div>
- $(function(){
- $("#send").click(function(){
- $("#resText").load("test.html");
- });
- });
test.html页面里并没有添加样式,但现在家族的内容有样式了,这些样式
是在主页添加的,即住页面相应的样式会理解应用到新加载的内容上。
load()方法的url参数的语法结构是:“url selector”注意,url和选择器之间有一个空格
如果只需要加载test.html页面中的class为"para"的内容,可以使用如下代码完成
$("#resText").load("test.html .para");
load()方法的传递方式根据参数data来自动指定。如果没有参数传递
则采用get方式传递;反之,则会自动转换为post方式。
//无参数传递,则是get方式
$("#resTest").load("test.php",function(){
//...
});
//有参数的传递,则是post方式
$("#resTest").load("test.php",{name:"rain",age:"22"},function(){
//...
})
回调参数
对于必须在加载完成后才能继续的操作,load()方法提供了回调函数(callback),该函数
有三个参数,分别代表请求返还的内容,请求状态和XMLHttpRequest对象。jQuery代码如下
$("#resText").load("test.html",function(responseText,testStatus,XMLHttpRequest){
//responseText:请求返回的内容
//textStatus:请求状态:success,error,notmodified,timeout 4种
//XMLHttpRequest:XMLHttpRequest对象
});
在load()方法中,无论Ajax请求是否成功,只要当请求完成(complete)后,回调函数(callback)就
被触发,对应下面将介绍的$.ajax()方法中的complete回调函数
$.get()方法和$.post()方法
$.get(url [,data] [,callback] [,type])
$.get()方法参数解释
url String 请求的HTML页的URL地址
data Object 发送至服务器的key/value数据会作为QueryString附加到请求URL中
callback Function 载入成功时回调函数(只有当Response的返回状态是success才调用
该方法)自动将请求结果和状态传递给该方法
type String 服务器端返回内容的格式 包括xml html script json text default
$.get()方法的回调函数只有两个参数
function(data,textStatus){
//data :返回的内容 可以是xml文档,json文件,html片段等等
//textStatus:请求状态:success,error,notmodified,timeout四种
}
例子:html片段
- $(function(){
- $("#send").click(function(){
- $.get("get1.php",{
- username:$("#username").val(),
- content:$("#content").val()
- },function(data,textStatus){
- $("#resText").html(data);//将返回的数据添加到页面上
- });
- })
- });
- xml文档
- $(function(){
- $("#send").click(function(){
- $.get("get2.php",{
- username:$("#username").val(),
- content:$("#content").val()
- },function(data,textStatus){
- var username=$(data).find("comment").attr("username");
- var content=$(data).find("comment content").text();
- var txtHtml="<div class='comment'><h6>"+username+":</h6><p class='para'>"+content+"</p></div>";
- $("#resText").html(textHtml);//将返回的数据添加到页面上
- });
- })
- });
- JSON文件
- $(function(){
- $("#send").click(function(){
- $.get("get3.php",{
- username:$("#username").val(),
- content:$("#content").val()
- },function(data,textStatus){
- var username=data.username;
- var content=data.content;
- var txtHtml="<div class='comment'><h6>"+username+
- ":</h6><p class='para'>"+content+"</p></div>";
- $("#resText").html(txtHtml);//将返回的数据添加到页面上
- },"json");
- });
- });
在上面的代码中 将$.get()方法的第4个参数(type)设置为"json"来代表期待服务端返回
的数据格式。
$.POST()方法
$(function(){
$("#send").click(function(){
$.post("post1.php",{
username:$("#username").val(),
content:$("#content").val()
},function)
});
})
$.ajax()方法是jQuery最底层的Ajax实现
它的结构为:
$.ajax(options)
该方法只有一个参数。但在这个对象里包含了$.ajax()方法所需要的请求设置以及
回调函数等信息。参数以key/value的形式存在 所以参数都是可选的。
前面用到的$.load(),$.get(),$.post(),$.getScript()和$.getJSON()这些方法 都是
基于$.ajax()方法构建的。$.ajax()方法是jQuery最底层的Ajax实现,因此可以替代前
面的所有方法。