Jquery在非同步提交方面封裝的很好,直接用AJAX非常麻煩,Jquery大大簡化了我們的操作,不用考慮瀏覽器的詫異了。 $.post、$.get是一些簡單的方法,如果要處理複雜的邏輯,還是需要用到jQuery.ajax() 一、$.ajax的一般格式 $.ajax({ type: 'POST', ...
Jquery在非同步提交方面封裝的很好,直接用AJAX非常麻煩,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我的實際應用例子
Js代碼 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 });