ajax向後臺傳遞陣列引數
ajax從後臺獲取資料是非常常用的一種方式,從後臺獲取資料會先往後臺傳遞一些引數,以前傳遞的都是一些簡單的字串,今天在做頁面資料的批量刪除時需要向後臺傳遞一組資料刪除資料的編號,但是當把陣列用data傳遞給後臺後一直報錯,後臺用對應的String[] parameter獲取,網上查了一下,說是要設定traditional為true來防止深度序列化,加入該引數後問題解決。下面附上主要程式碼
js程式碼:
$(document).on('click','#batchDelete',function(){
var checkObject = document.getElementsByName("allCheck");//獲取所有複選框
var delId = [];
var i = 0;
for(k in checkObject){
if(checkObject[k].checked && i<checkObject.length){//選擇選中的複選框
delId.push(checkObject[k].id.split("-")[1]);//將要刪除的id加入陣列
}
i++;
}
deleteAlarm(delId);
$("#queryBtn").click();
});
function deleteAlarm(delId){
$.ajax({
type: "POST",
url: xxxx,
cache: false,
traditional: "true",
async:false,
data:{"delId":delId},
dataType: "json",
success: function (ret) {
},
error: function (ret) {
}
});
}//traditional這個必須設定
java程式碼
@RequestMapping(value="deleteManyAlarm")
@ResponseBody
public Boolean deleteManyAlarm(@RequestParam String[] delId) throws Exception {
if(null!=delId) {
for(int i=0;i<delId.length;i++){
//刪除操作的程式碼
}
return true;
}
return false;
}