$.post(),$.ajax(),$.get()和load()

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 请求完成时的回调函数,无论请求成功或失败

[html]  view plain copy
  1. <input type="button" id="send" value="Ajax获取" />  
  2. <div class="comment">已有评论:</div>  
  3. <div id="resText"></div>  
  4. $(function(){  
  5.    $("#send").click(function(){  
  6.      $("#resText").load("test.html");  
  7.    });  
  8. });  

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片段

[html]  view plain copy
  1. $(function(){  
  2.   $("#send").click(function(){  
  3.     $.get("get1.php",{  
  4.     username:$("#username").val(),  
  5.     content:$("#content").val()  
  6.     },function(data,textStatus){  
  7.         $("#resText").html(data);//将返回的数据添加到页面上  
  8.     });  
  9.   })  
  10. });  
  11. xml文档  
  12. $(function(){  
  13.   $("#send").click(function(){  
  14.     $.get("get2.php",{  
  15.     username:$("#username").val(),  
  16.     content:$("#content").val()  
  17.     },function(data,textStatus){  
  18.         var username=$(data).find("comment").attr("username");  
  19.         var  content=$(data).find("comment content").text();  
  20.         var txtHtml="<div class='comment'><h6>"+username+":</h6><p class='para'>"+content+"</p></div>";  
  21.         $("#resText").html(textHtml);//将返回的数据添加到页面上  
  22.     });  
  23.   })  
  24. });  
  25.   
  26. JSON文件  
  27. $(function(){  
  28.    $("#send").click(function(){  
  29.      $.get("get3.php",{  
  30.        username:$("#username").val(),  
  31.        content:$("#content").val()  
  32.      },function(data,textStatus){  
  33.          var username=data.username;  
  34.          var content=data.content;  
  35.          var txtHtml="<div class='comment'><h6>"+username+  
  36.          ":</h6><p class='para'>"+content+"</p></div>";  
  37.          $("#resText").html(txtHtml);//将返回的数据添加到页面上  
  38.      },"json");  
  39.    });  
  40.   
  41. });  

在上面的代码中 将$.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实现,因此可以替代前
面的所有方法。


不过这里需要纠正的一点是:

jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。

HTTP 请求:GET vs. POST

两种在客户端和服务器端进行请求-响应的常用方法是:GET 和 POST。

  • GET - 从指定的资源请求数据
  • POST - 向指定的资源提交要处理的数据

GET 基本上用于从服务器获得(取回)数据。注释:GET 方法可能返回缓存数据。

POST 也可用于从服务器获取数据。不过,POST 方法不会缓存数据,并且常用于连同请求一起发送数据。

如需学习更多有关 GET 和 POST 以及两方法差异的知识,请阅读我们的 HTTP 方法 - GET 对比 POST

jQuery $.get() 方法

$.get() 方法通过 HTTP GET 请求从服务器上请求数据。

语法:

$.get(URL,callback);

必需的 URL 参数规定您希望请求的 URL。

可选的 callback 参数是请求成功后所执行的函数名。

下面的例子使用 $.get() 方法从服务器上的一个文件中取回数据:

实例

$("button").click(function(){
  $.get("demo_test.asp",function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
  });
});

亲自试一试

$.get() 的第一个参数是我们希望请求的 URL("demo_test.asp")。

第二个参数是回调函数。第一个回调参数存有被请求页面的内容,第二个回调参数存有请求的状态。

提示:这个 ASP 文件 ("demo_test.asp") 类似这样:

<%
response.write("This is some text from an external ASP file.")
%>

jQuery $.post() 方法

$.post() 方法通过 HTTP POST 请求从服务器上请求数据。

语法:

$.post(URL,data,callback);

必需的 URL 参数规定您希望请求的 URL。

可选的 data 参数规定连同请求发送的数据。

可选的 callback 参数是请求成功后所执行的函数名。

下面的例子使用 $.post() 连同请求一起发送数据:

实例

$("button").click(function(){
  $.post("demo_test_post.asp",
  {
    name:"Donald Duck",
    city:"Duckburg"
  },
  function(data,status){
    alert("Data: " + data + "\nStatus: " + status);
  });
});

亲自试一试

$.post() 的第一个参数是我们希望请求的 URL ("demo_test_post.asp")。

然后我们连同请求(name 和 city)一起发送数据。

"demo_test_post.asp" 中的 ASP 脚本读取这些参数,对它们进行处理,然后返回结果。

第三个参数是回调函数。第一个回调参数存有被请求页面的内容,而第二个参数存有请求的状态。

提示:这个 ASP 文件 ("demo_test_post.asp") 类似这样:

<%
dim fname,city
fname=Request.Form("name")
city=Request.Form("city")
Response.Write("Dear " & fname & ". ")
Response.Write("Hope you live well in " & city & ".")
%>
也就是说
$.get()应该是不能传递data的,因为你在load()方法中说
load如果不传递参数就是用$.get(),否则使用$.post
如果$.get和$.post都可以传递data的话,那就不需要两个方法
jquery的作者肯定不能这么逗比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值