1. 程式人生 > >jquery的ajax請求處理以及處理後臺java傳的json資料

jquery的ajax請求處理以及處理後臺java傳的json資料

一、$.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)。
//1.$.ajax帶json資料的非同步請求
var aj = $.ajax( {  
    url:'productManager_reverseUpdate',// 跳轉到 action  
    data:{  
             selRollBack : selRollBack,  
             selOperatorsCode : selOperatorsCode,  
             PROVINCECODE : PROVINCECODE,  
             pass2 : pass2  
    },  
    type:'post',  
    cache:false,  
    dataType:'json',  
    success:function(data) {  
        if(data.msg =="true" ){  
            // view("修改成功!");  
            alert("修改成功!");  
            window.location.reload();  
        }else{  
            view(data.msg);  
        }  
     },  
     error : function() {  
          // view("異常!");  
          alert("異常!");  
     }  
});




//2.$.ajax序列化表格內容為字串的非同步請求
function noTips(){  
    var formParam = $("#form1").serialize();//序列化表格內容為字串  
    $.ajax({  
        type:'post',      
        url:'Notice_noTipsNotice',  
        data:formParam,  
        cache:false,  
        dataType:'json',  
        success:function(data){  
        }  
    });  
}  




//3.$.ajax拼接url的非同步請求
var yz=$.ajax({  
     type:'post',  
     url:'validatePwd2_checkPwd2?password2='+password2,  
     data:{},  
     cache:false,  
     dataType:'json',  
     success:function(data){  
          if( data.msg =="false" ) //伺服器返回false,就將validatePassword2的值改為pwd2Error,這是非同步,需要考慮返回時間  
          {  
               textPassword2.html("<font color='red'>業務密碼不正確!</font>");  
               $("#validatePassword2").val("pwd2Error");  
               checkPassword2 = false;  
               return;  
           }  
      },  
      error:function(){}  
}); 




//4.$.ajax拼接data的非同步請求
$.ajax({   
    url:'${basePath }/jobs/Dictionary/post',   
    type:'post',   
    data:'merName='+values,   
    async : false, //預設為true 非同步   
    error:function(){   
       alert('error');   
    },   
    success:function(data){ 
    //後臺傳過來的是list<Map> 或者是list<Object>
       var jsonObj=eval("("+data+")");  
        $.each(jsonObj, function (i, item) {  
            //$("#taskClass").append("<option value='"+item.+"."+item.fieldName+"'>"+item.statuDesc+"</option>");
            alert(item.value + ","  + item.desc);  
        });   
       $("#"+divs).html(data);   
    }
});




後臺action

JSON-lib這個Java類包用於把bean,map和XML轉換成JSON並能夠把JSON轉回成bean和DynaBean。

下載地址:http://json-lib.sourceforge.net/
還要需要的第3方包:
org.apache.commons(3.2以上版本)
org.apache.oro
net.sf.ezmorph(ezmorph-1.0.4.jar)
nu.xom
        @RequestMapping(value="post")
public  void post(HttpServletRequest request,HttpServletResponse response){
        List<Map<String,String>> listMap = new ArrayList<Map<String,String>>();
        for (int i = 0; i < 6; i++) {
            Map<String,String> map = new HashMap<String,String>(); 
             map.put("value", "id"+i);
             map.put("desc", i+"");
             listMap.add(map);
        }
        System.out.println(JSONArray.fromObject(listMap).toString());
        StringUtil.write(response, JSONArray.fromObject(listMap).toString()); 

    }

public static void write(HttpServletResponse response,String message){
        try {
            response.setContentType("text/html");
            response.setCharacterEncoding("utf-8");
            response.getWriter().write(message);
            response.getWriter().flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }