遇到的问题---springMVC中ajax数组传值报400或者415错误

来源:互联网 发布:java爬虫框架jsoup 编辑:程序博客网 时间:2024/06/06 15:02


错误原因

400 请求出错 
由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。 
415  
介质类型不受支持 — 服务器拒绝服务请求,因为不支持请求实体的格式。  
检查 data 吧,看看提交到后台的数据是否合法!



这是由于在后台服务端定义的参数与传送的格式对应不上引起的。



解决方法

下面给出正确的使用方式:

jsp文件中

 var pointCodes= new Array(); //定义一数组     pointCodes=$('#pointCodes').val().trim().split(',');    $.ajax({               url:'/primer/bind-primer',               type:"POST",               data:{"pointCodes":pointCodes,"id":$('#primerId').val()},               timeout:3000000,               dataType:"json",               success:function(res){     alert('成功');}, error:function(){ alert('服务器忙,请稍后再试'); } });

我们在这里的data传递的是一个json文档,里面有数组pointCodes,有id值。

后台接受时如下:

java文件中

   @RequestMapping("/bind-primer")    @ResponseBody    public AjaxResult bindPrimer(@RequestParam(value = "pointCodes[]") String[] pointCodes,@RequestParam String id) {        return AjaxResult.resultSuccess(primerService.bindPrimer(pointCodes, id));    }

这里的关键在于

SpringMVC传递一维数组:传递数组类型时,需要在@requestParam()中添加value。

也就是

@RequestParam(value = "pointCodes[]") String[] pointCodes

value = "pointCodes[]"

这里的pointCodes与 jsp中传值时的key命名一致。



1 0
原创粉丝点击