//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) {
}
});
//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