我用ajax传递数组参数,
代码如下:
$.ajax({
url: Spica_Module + "/purchase/item/editItemAndUnits",
traditional: true,
type: "post",
dataType: "json",
async:false,
data: {
id: id,
quantity:quantity,
shelves:shelves,
packageUnits:packageUnits
},
success: function (data) {
},
error: function (ex) {
//alert("ajax请求错误!");
}
});
其中shelves和packageUnits是数组,定义如下:
var arr=[];
var shelve=[];
$(this).closest("td").siblings("td").find(".packQuantity").each(function(){
arr.push((($(this).val()=="")?"0":$(this).val())+"-"+$(this).attr("data-pack-id"));
});
$(this).closest("td").siblings("td").find(".itemEdit").each(function(){
shelve.push($(this).find(".iquantity").data("quantity")+"-"+$(this).find(".iunit").data("unit")+"-"+$(this).find(".ishelve").data("shelve"));
});
意思就是循环dom节点,有值的话向数组中push,正常有值的话我的ajax请求没有报错,
后台接收代码:
@ResponseBody
@RequestMapping(value = {"/item/editItemAndUnits"}, method = {RequestMethod.GET,RequestMethod.POST})
public Boolean editItemAndUnits(@RequestParam("id") String id,
@RequestParam("quantity") String quantity,
@RequestParam("shelves") String[] shelves,
@RequestParam("packageUnits") String[] packageUnits,
Subject subject,Model model){。。。。}
问题是:
当我参数数组都有值的时候,请求正常访问,但是当我的数组参数为空,即:
var arr=[];
var shelve=[];
的时候ajax请求就报错,报错如下:
"NetworkError: 400 Bad Request - http://localhost:9980/erp/purchase/item/editItemAndUnits"
之前只有一个数组参数的时候我写了两个ajax,一个有改参数,一个没有该参数,现在有两个都可为空的数组参数,所以不能这么写了,求大神帮忙解决一下
