//post请求发送json(必须使用JSON.stringfy()转为json) controller接受用map @RequestBody HashMap map)
/*var object = new Object(); object.eventTrackingType = eventTrackingType; object.beginDate = beginDate; object.endDate = endDate; object.menuName = menuName; var s = JSON.stringify(value);*/ var param = { eventTrackingType: eventTrackingType, beginDate: beginDate, endDate: endDate, menuName: menuName }; $.ajax({ type: "POST", contentType: 'application/json; charset=UTF-8', dataType: "json", url: "getEventTrackingList", //注意url和下面的data顺序写反了,ajax就不能请求成功 data: JSON.stringify(param), //或者直接 s,结束 async: true, success: function (ret) { hidediv(); $('#tabledata').dataTable().fnClearTable(); //将数据清除 if(ret.code==200){ if(ret.list!=null && ret.list.length>0 ){ $('#tabledata').dataTable().fnAddData(ret.list); }else{ return; } }else{ return; } }, error: function (ret) { } });data中,将json对象序列化。使用JSON.stringfy()函数
$.ajax({ type: "POST", contentType: 'application/json; charset=UTF-8', dataType: "json", data:JSON.stringify({siteKey:siteKey}),
//get请求发json
$.ajax({ type: "GET", contentType: 'application/json; charset=UTF-8', // dataType: "json", url: "getMenuNoRepeat", data: { eventTrackingType: eventTrackingType }, async: true, success: function (ret) { var html=choice; for(var i=0;i< ret.length;i++){ html=html+"<option value='"+ret[i]+"'>"+ret[i]+"</option>"; } $("#menuNames").append(html); $('#menuNames').comboSelect(); }, error: function (XMLHttpRequest, textStatus, errorThrown) { console.log("no"); } });
如下情况: 返回的内容通过@ResponseBody不能转为json时 请不要指定dataType为json, 即将// dataType: "json",注释掉
ajax只返回String "success" 使用@ResponseBody不能少 mapping方法上也是String
ajax只返回ArrayList<String> list 使用@ResponseBody不能少 mapping方法上也是 ArrayList<String>
$.ajax({
type: "GET",
contentType: 'application/json; charset=UTF-8',
// dataType: "json", //将此行注释,说明返回的不是json, 而是普通的string或list