jQuery.get()方法:
$.get(url,data,success(response,status,xhr),dataType)
该函数是简写的 Ajax 函数,等价于:
1. $.ajax({
2. url: url,
3. data: data,
4. success: success,
5. dataType: dataType
6. });
根据响应的不同的 MIME 类型,传递给 success 回调函数的返回数据也有所不同,这些数据可以是 XML root 元素、文本字符串、JavaScript 文件或者 JSON 对象。也可向 success 回调函数传递响应的文本状态。
参数 | 描述 |
url | 必需。规定将请求发送的哪个 URL。 |
data | 可选。规定连同请求发送到服务器的数据。 |
success(response,status,xhr) | 可选。规定当请求成功时运行的函数。 额外的参数: response - 包含来自请求的结果数据 status - 包含请求的状态 xhr - 包含 XMLHttpRequest 对象 |
dataType | 可选。规定预计的服务器响应的数据类型。 默认地,jQuery 将智能判断。 可能的类型: "xml" "html" "text" "script" "json" "jsonp" |
使用 AJAX 的 GET 请求来改变 div 元素的文本:
1. $("button").click(function(){
2. "demo_ajax_load.txt", function(result){
3. "div").html(result);
4. });
5. });
jquery.post()方法:
$.post(url,data,success(data, textStatus, jqXHR),dataType)
该函数是简写的 Ajax 函数,等价于:
1. $.ajax({
2. 'POST',
3. url: url,
4. data: data,
5. success: success,
6. dataType: dataType
7. });
根据响应的不同的 MIME 类型,传递给 success 回调函数的返回数据也有所不同,这些数据可以是 XML 根元素、文本字符串、javascript 文件或者 JSON 对象。也可向 success 回调函数传递响应的文本状态。
参数 | 描述 |
url | 必需。规定把请求发送到哪个 URL。 |
data | 可选。映射或字符串值。规定连同请求发送到服务器的数据。 |
success(data, textStatus, jqXHR) | 可选。请求成功时执行的回调函数。 |
dataType | 可选。规定预期的服务器响应的数据类型。 |
使用 AJAX 的 GET 请求来改变 div 元素的文本:
1. $("input").keyup(function(){
2. "input").val();
3. "demo_ajax_gethint.asp",{suggest:txt},function(result){
4. "span").html(result);
5. });
6. });
实例:
一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。
示例代码:
Ajax.aspx:
1. Response.ContentType = "application/json";Response.Write("{result: '" + Request["Name"] + ",你好!(这消息来自服务器)'}");
jQuery 代码:
1. $.post("Ajax.aspx", { Action: "post", Name: "lulu" },
2. function (data, textStatus){
3. // data 可以是 xmlDoc, jsonObj, html, text, 等等.
4. //this;
5. // 这个Ajax请求的选项配置信息,请参考jQuery.get()说到的this
6. alert(data.result);
7. }, "json");
点击提交:
这里设置了请求的格式为"json":
$.ajax()这个是jQuery 的底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。
这里有几个Ajax事件参数:beforeSend ,success ,complete ,error 。我们可以定义这些事件来很好的处理我们的每一次的Ajax请求。
1. $.ajax({
2. url: 'stat.php',
3. type: 'POST',
4. data:{Name:"keyun"},
5. dataType: 'html',
6. timeout: 1000,
7. error: function(){alert('Error loading PHP document');},
8. success: function(result){alert(result);}
9. });
$.get()与$.post()的区别:
《计算机网络》对POST和GET方法在HTTP协议中的简单解释:HTTP协议定义了通信的两种报文:请求报文和响应报文。对于请求报文来说,它的通用格式包含三个主要部分:请求行、首部行、实体主体。通常请求行的格式为:方法字段、URL字段、HTTP协议版本字段,其中方法字段就包括GET、POST方法等。
当方法字段是GET方法时内容主体为空,而是用POST方法时才使用实体主体。
HTTP客户机通常在用户提交表单时使用POST方法,这时,实体主体中所包含的就是用户在表单中的输入值。当然,GET方法也可以提交表单中的数据,它是通过将用户在表单中的输入值传送到正确的URL来实现的。这就是我们通常所看到的http://ei.hust.edu.cn?username="libis"&age=12。
可以看出,在表单提交的方式上两者存在很大的不同:
1.Post方法将表单数据填充到HTTP请求报文中的实体主体部分,使用者是看不到的。而GET方法则是将表单数据直接传送到请求行的URL字段来实现表单数据提交的。这也就决定了使用POST是相对比较安全的,而是用GET方法的安全性就很低。
除此之外,GET方法和POST方法另一个重要的区别是:
2.GET方法传送的数据量较小,一般只有2k。而POST方法传送的数据量较大,理论上没有上限。
$.ajax()需要注意的一些地方:
1.data主要方式有三种,html拼接的,json数组,form表单经serialize()序列化的;通过dataType指定,不指定智能判断。
2.$.ajax只提交form以文本方式,如果异步提交包含<file>上传是传过不过去,需要使用jquery.form.js的$.ajaxSubmit
$.ajax() 实际应用例子
1. //1.$.ajax带json数据的异步请求
2. var aj = $.ajax( {
3. 'productManager_reverseUpdate',// 跳转到 action
4. data:{
5. selRollBack : selRollBack,
6. selOperatorsCode : selOperatorsCode,
7. PROVINCECODE : PROVINCECODE,
8. pass2 : pass2
9. },
10. 'post',
11. false,
12. 'json',
13. function(data) {
14. if(data.msg =="true" ){
15. // view("修改成功!");
16. "修改成功!");
17. window.location.reload();
18. else{
19. view(data.msg);
20. }
21. },
22. function() {
23. // view("异常!");
24. "异常!");
25. }
26. });
27.
28.
29. //2.$.ajax序列化表格内容为字符串的异步请求
30. function noTips(){
31. var formParam = $("#form1").serialize();//序列化表格内容为字符串
32. $.ajax({
33. 'post',
34. 'Notice_noTipsNotice',
35. data:formParam,
36. false,
37. 'json',
38. function(data){
39. }
40. });
41. }
42.
43.
44. //3.$.ajax拼接url的异步请求
45. var yz=$.ajax({
46. 'post',
47. 'validatePwd2_checkPwd2?password2='+password2,
48. data:{},
49. false,
50. 'json',
51. function(data){
52. if( data.msg =="false" ) //服务器返回false,就将validatePassword2的值改为pwd2Error,这是异步,需要考虑返回时间
53. {
54. "<font color='red'>业务密码不正确!</font>");
55. "#validatePassword2").val("pwd2Error");
56. false;
57. return;
58. }
59. },
60. function(){}
61. });
62.
63.
64. //4.$.ajax拼接data的异步请求
65. $.ajax({
66. '<%=request.getContextPath()%>/kc/kc_checkMerNameUnique.action',
67. 'post',
68. 'merName='+values,
69. false, //默认为true 异步
70. function(){
71. 'error');
72. },
73. function(data){
74. "#"+divs).html(data);
75. }
76. });