用jQuery 如何利用ajax 像后台传输 数组对象

Vincent_scx 2015-09-09 08:51:47
前端

var p=new Array();
var param={"name":"name1","Id":1};
p.push(param);
var param={"name":"name2","Id":1};
p.push(param);
$.ajax({
url:"../proprocedure/saveProprocedure.json",
type:"post",
traditional:true,//阻止深度序列化
data:{"p":JSON.stringify(p)},
dataType:"json",
contentType:"application/json; charset=utf-8" ,
success:function(backdata){

}
});

@RequestMapping("saveProprocedure.json")
@ResponseBody
public Object saveProprocedure(HttpServletRequest request,
HttpServletResponse response,@RequestBody List<Proprocedure> p)

然后状态码是400,无法正常传输获取,求助
...全文
835 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
DaveLeeCN 2015-09-10
  • 打赏
  • 举报
回复
你这是给后台传数据呢,连接后面不是带 参数吗?直接引用到json的路径能行?
猿敲月下码 2015-09-10
  • 打赏
  • 举报
回复
可以换种方式
//var p=new Array();
 // var param={"name":"name1","Id":1};
  // p.push(param);
 // var param={"name":"name2","Id":1};
 // p.push(param);

  var data = {};
  data.name = ['name1','name2'];
  data.id = [1,1];
$.ajax({
        url:"../proprocedure/saveProprocedure.json",
        type:"post",
        traditional:true,//阻止深度序列化
        data:data, 
        dataType:"json",
        contentType:"application/json; charset=utf-8" ,
        success:function(backdata){
                 
            }
    });
})
似梦飞花 2015-09-10
  • 打赏
  • 举报
回复
直接data:你的数组就可以了啊
Vincent_scx 2015-09-10
  • 打赏
  • 举报
回复
引用 1 楼 hookee 的回复:
400是请求出错。 确定 post 到的url saveProprocedure.json是可执行的程序?
可以执行的,400是因为我后台想注入的时候出错了,才出现的,所以我想知道怎么正确通过ajax传输数组对象
hookee 2015-09-10
  • 打赏
  • 举报
回复
400是请求出错。 确定 post 到的url saveProprocedure.json是可执行的程序?
打开下面链接,直接免费下载资源: https://renmaiwang.cn/s/bvviq 需求: 在JS中向后台传递数组参数 分析: JS中的数组是弱类型的可以放任何类型(对象、基本类型),但是如果数组中放的是对象类型,传递到后台是显示的只能是对象字符串–[object Object],原因如下: 在后台接收的时候,只能用request来接收,request.getParameterValues()方法返回的是一个String[],所以,应该是在前台传输的时候调用了对象的toString()方法,那么如果依然想传递对象怎么办?凉拌! 但是可以使用JSON字符串来实现,在后台把JSON字符串解析成JAVA对象。 也许,你要说如果是复合对象怎么办,比如如下: 代码如下: public在JavaScript中,jQueryAJAX功能常常用于与服务器进行异步数据交互。当需要传递数组作为参数时,可能会遇到一些挑战,特别是在数组中包含复杂对象的情况。本文将深入讲解如何在jQuery AJAX中向后台传递数组参数,并提供示例代码。理解问题的关键在于JavaScript数组在传递给后台时,如果数组内包含的是对象,会被转化为`[object Object]`的字符串形式。这是因为HTTP请求的参数通常是键值对,而`request.getParameterValues()`方法只能接收字符串数组。因此,当对象被序列化为字符串时,默认调用了`toString()`方法,导致对象信息丢失。为了解决这个问题,我们可以利用JSON(JavaScript Object Notation)进行数据序列化。JSON是一种轻量级的数据交换格式,可以将JavaScript对象转换为字符串,同时也能将字符串解析为JavaScript对象。在后台,我们可以将接收到的JSON字符串反序列化为Java对象。假设

87,995

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧