表单如何传数组?

发布于 2022-09-12 23:44:03 字数 572 浏览 22 评论 0

要传一个表单,里面有一个数组,数组里是一些对象

但是发出去的格式是这样的:

导致后台收不到

我希望是

scGoodsopextendDataParamList[0].goodsopextendId

这里的数组长度是不一定的

前端就是ajax发送的 data是带数组的对象

$.ajax({
            url: url,
            data: params,
            type: type ? type : "post",
            contentType: contentType ? contentType : "application/x-www-form-urlencoded; charset=UTF-8",
            dataType: "json",
            cache: false
        })

如何解决?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

<逆流佳人身旁 2022-09-19 23:44:03

不太明白图片内容,建议贴关键测试数据

解决方案:沟通

您可以把params,Json序列化一遍(当然需要跟后台老哥沟通)通过字符串形式发给后端老哥

JSON.stringify(params)

慢慢从新开始 2022-09-19 23:44:03
$.ajax({
            url: url,
            data: JSON.stringify(params),
            type: type ? type : "post",
            contentType: contentType ? contentType : "application/json; charset=UTF-8",
            dataType: "json",
            cache: false
})

这样序列化之后就能正常传给后端了,但是需要后端再进行反序列化之后就能正常解析了

咋地 2022-09-19 23:44:03

表单也行,不过你需要自己把你的参数格式手动转换成scGoodsopextendDataParamList[0].goodsopextendId 这种,不推荐吧,太恶心了。和后端商量下,这个复杂的格式用json类型来传多香,本来表单就不太适合这种数组格式的传输:

$.ajax({
            url: url,
            data: JSON.stringify(params),
            type: type ? type : "post",
            //换成json类型
            contentType: contentType ? contentType : "application/json; charset=UTF-8",
            cache: false
})
我乃一代侩神 2022-09-19 23:44:03

简单格式(键值对)可以用 Query String 格式来发送。但复杂格式(JS 对象)建议先转换成文本可描述的格式比如 XML、JSON 或者自定义格式。

像现在这种情况,建议直接使用 JSON 格式(主要是 JavaScript 处理 JSON 方便),直接将整个 JSON 字符串传送到后台,由后台使用 JSON 库再恢复成对象来使用。

前端转 JSON 容易(假设数据对象是 data):

JSON.stringify(data)

后端拿到文本之后,再用工具转成内存数据结构,

  • Node.js 直接用 JSON.parse() 就可以转
  • .NET 可以用 Newtonsoft Json.Net 库
  • Java 可以用 Fastjson,Gson 等库
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文