jquery $.ajax $.get $.post的区别是啥噢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery $.ajax $.get $.post的区别是啥噢?相关的知识,希望对你有一定的参考价值。
get和Post好理解涩、 但是$.ajax是什么意思哦? 他们3有啥区别呢?
$.ajax 是 jQuery 底层 AJAX 实现,$.ajax是一种通用的底层封装,$.ajax()请求数据之后,则需要使用回调函数,有beforeSend、error、dataFilter、success、complete等。$.get $.post是简单易用的高层实现,我们使用$.get $.post方法,jQuery会自动封装调用底层的$.ajax。
$.get 只处理简单的 GET 请求功能以取代复杂 $.ajax,请求成功时可调用回调函数。不支持出错时执行函数,否则必须使用$.ajax。
$.post 只处理 post请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。不支持出错时执行函数,否则必须使用$.ajax。
$.get("test.php", name: "John", time: "2pm" ) $.get方法在请求时会自动生成queryString提交给服务器(name=John&time=2pm),
$.post方法提交的数据直接类似表单提交,提交的数据量比$.get更大。 参考技术A Get和Post是HTTP协议的请求方法,其他的还有Head,Delete,Trace等等,但是不一定被服务器支持
Ajax是异步请求,Ajax中可以使用Get或者Post请求方式。
学jQuery前先把HTTP协议,javascript等熟悉下厄 参考技术B get和post 都是采用的异步交互的方式,但是如果想利用post和get 做同步调用的话就不行$.ajax 既可以使用异步也可以使用同步,而且都支持get 和post
Ajax-jQuery_Ajax_实例 ($.ajax$.post$.get)
Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了。
推荐一篇不错的jQuery Ajax 实例文章,忘记了可以去看看,
地址为:http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html 和 http://www.w3school.com.cn/jquery/
$.post、$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()
一、$.ajax的一般格式
$.ajax({
type: \'POST\',
url: url ,
data: data ,
success: success ,
dataType: dataType
});
二、$.ajax的参数描述
参数 描述
url | 必需。规定把请求发送到哪个 URL。 |
data | 可选。映射或字符串值。规定连同请求发送到服务器的数据。 |
success(data, textStatus, jqXHR) | 可选。请求成功时执行的回调函数。 |
dataType |
可选。规定预期的服务器响应的数据类型。 默认执行智能判断(xml、json、script 或 html)。 |
三、$.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 url:\'productManager_reverseUpdate\',// 跳转到 action
4 data:{
5 selRollBack : selRollBack,
6 selOperatorsCode : selOperatorsCode,
7 PROVINCECODE : PROVINCECODE,
8 pass2 : pass2
9 },
10 type:\'post\',
11 cache:false,
12 dataType:\'json\',
13 success:function(data) {
14 if(data.msg =="true" ){
15 // view("修改成功!");
16 alert("修改成功!");
17 window.location.reload();
18 }else{
19 view(data.msg);
20 }
21 },
22 error : function() {
23 // view("异常!");
24 alert("异常!");
25 }
26 });
27
28
29 //2.$.ajax序列化表格内容为字符串的异步请求
30 function noTips(){
31 var formParam = $("#form1").serialize();//序列化表格内容为字符串
32 $.ajax({
33 type:\'post\',
34 url:\'Notice_noTipsNotice\',
35 data:formParam,
36 cache:false,
37 dataType:\'json\',
38 success:function(data){
39 }
40 });
41 }
42
43
44 //3.$.ajax拼接url的异步请求
45 var yz=$.ajax({
46 type:\'post\',
47 url:\'validatePwd2_checkPwd2?password2=\'+password2,
48 data:{},
49 cache:false,
50 dataType:\'json\',
51 success:function(data){
52 if( data.msg =="false" ) //服务器返回false,就将validatePassword2的值改为pwd2Error,这是异步,需要考虑返回时间
53 {
54 textPassword2.html("<font color=\'red\'>业务密码不正确!</font>");
55 $("#validatePassword2").val("pwd2Error");
56 checkPassword2 = false;
57 return;
58 }
59 },
60 error:function(){}
61 });
62
63
64 //4.$.ajax拼接data的异步请求
65 $.ajax({
66 url:\'<%=request.getContextPath()%>/kc/kc_checkMerNameUnique.action\',
67 type:\'post\',
68 data:\'merName=\'+values,
69 async : false, //默认为true 异步
70 error:function(){
71 alert(\'error\');
72 },
73 success:function(data){
74 $("#"+divs).html(data);
75 }
76 });
另一个例子:
$.ajax({ url:\'/comm/test1.php\', type:\'POST\', //GET async:true, //或false,是否异步 data:{ name:\'yang\',age:25 }, timeout:5000, //超时时间 dataType:\'json\', //返回的数据格式:json/xml/html/script/jsonp/text beforeSend:function(xhr){ console.log(xhr) console.log(\'发送前\') }, success:function(data,textStatus,jqXHR){ console.log(data) console.log(textStatus) console.log(jqXHR) }, error:function(xhr,textStatus){ console.log(\'错误\') console.log(xhr) console.log(textStatus) }, complete:function(){ console.log(\'结束\') } })
以上是关于jquery $.ajax $.get $.post的区别是啥噢?的主要内容,如果未能解决你的问题,请参考以下文章
Ajax-jQuery_Ajax_实例 ($.ajax$.post$.get)