解决Ajax异步请求中传数组参数,后台无法接收问题

没有检索到摘要

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端Ajax:

var ids= [];
$.ajax({ 
        url: '', 
       data: { ids: ids}, 
       dataType: "json", 
       type: "POST", 
       success: function (responseJSON) { 
            alert('Ok'); 
       } 
});

这样的写法后台用数组类型接收参数ids为null。只要在ajax请求时加上traditional:true就可以解决这个问题。

$.ajax({ 
    url: '', 
    data: { ids: ids}, 
    dataType: "json", 
    type: "POST", 
    traditional: true,//这里设为true就可以了
    success: function (responseJSON) { 
        alert('Ok'); 
    } 
});

一般我们传数参数组时这样写:

data:{arr:[1,2,3]}

如果单纯写成这样,在java后台是无法取到参数的,因为jQuery需要调用jQuery.param序列化参数:jQuery.param( obj, traditional )

默认的话,traditional为false,即jquery会深度序列化参数对象,但servelt api无法处理,我们可以通过设置traditional 为true阻止深度序列化,

然后序列化结果如下:

arr: ["123", "456", "789"] => arr=123&arr=456&arr=456

记录一下遇到的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值