jquery的ajax請求處理以及處理後臺java傳的json資料
阿新 • • 發佈:2019-02-08
一、$.ajax的一般格式
二、$.ajax的引數描述
引數 描述
url 必需。規定把請求傳送到哪個 URL。
data 可選。對映或字串值。規定連同請求傳送到伺服器的資料。
success(data, textStatus, jqXHR) 可選。請求成功時執行的回撥函式。
dataType
可選。規定預期的伺服器響應的資料型別。
預設執行智慧判斷(xml、json、script 或 html)。
//2.$.ajax序列化表格內容為字串的非同步請求
//3.$.ajax拼接url的非同步請求
//4.$.ajax拼接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
$.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();
}
}