@RequestBody问题

Alaska_Lee 2016-07-06 05:34:41
我用ajax提交了post请求

var ids=new Array();
ids.push(15);
ids.push(17);
$.ajax({
type:"post",
url:"http://172.27.35.13:8080/FileSync/filesync/getUploadFileStatus"
data:JSON.stringify(ids),
dataType:'json',
success : function (data){
},
error: function( data){
alert(data);
}
});



MVC controller端:

@SuppressWarnings("finally")
@RequestMapping(value="getUploadFileStatus",method=RequestMethod.POST)
public @ResponseBody String download(HttpServletResponse res,HttpServletRequest request, @RequestBody String ids) throws IOException {
return "";
}

断点看了下ids接受到的是:%5B15%2C17%5D=
请问这个是怎么回事,我该如何获取到我想要的[15,17]
分不多,各位将就下吧
...全文
610 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
痴恋丿君 2016-07-25
  • 打赏
  • 举报
回复
{“ids”:"15,17"} 后台 String[] ids
冬天豆腐 2016-07-25
  • 打赏
  • 举报
回复
貌似乱码了,加个charset=utf-8在@RequestMaping 里面,再用火狐看看从前端传到后端的是什么,
a917390823 2016-07-25
  • 打赏
  • 举报
回复
首先楼主你是想以表单的形式接收还是想以json的格式接收? 用表单的方式接收: 前台data改成data:{ ids: JSON.stringify([15,17]) } ,后台@RequestBody去掉 用json的格式接收 前台加上contentType:"application/json" 因为你前台AJAX不加contentType,默认就是表单的形式传输,会自动对传输进行编码,而request.getParamert("")会自动进行解码,正确情况下所以就不会看到你这样编码过后的东西了
realx 2016-07-25
  • 打赏
  • 举报
回复
打断点有时候是显示的ASCII码的,%5b15%2c17%5d就是[15,17] ,所以程序是对的,不用改。
今天晴 2016-07-25
  • 打赏
  • 举报
回复
引用 11 楼 qq_21139101 的回复:
data:{"ids":JSON.stringify(ids)}
有道理
qq_21139101 2016-07-25
  • 打赏
  • 举报
回复
data:{"ids":JSON.stringify(ids)}
Alaska_Lee 2016-07-07
  • 打赏
  • 举报
回复
上面的都试过了,都不行啊.
bree06 2016-07-07
  • 打赏
  • 举报
回复
@RequestBody String ids 改为 @RequestBody String[] ids
Alaska_Lee 2016-07-07
  • 打赏
  • 举报
回复
主要是 [15,17]的转码是在哪里转成 %5B15%2C17%5D= 的,应该是哪里有个配置,既然没有人知道
Intboy 2016-07-07
  • 打赏
  • 举报
回复
JSON.stringify(ids) 这东西就不是个json啊
  • 打赏
  • 举报
回复
[15,17] 在进行过URL编码后 就是你看到的 %5b15%2c17%5d 所以要么后端解析下就可以正常接受,要么请求的时候不要进行 URL编码
  • 打赏
  • 举报
回复
哈哈哈,是给你加密了吗
jackie_tsai 2016-07-07
  • 打赏
  • 举报
回复
看看tomcat的编码设置有没有设
tony4geek 2016-07-06
  • 打赏
  • 举报
回复
data:{ ids: JSON.stringify([15,17]) } 从 @RequestParam(value = "ids" 里面取
tony4geek 2016-07-06
  • 打赏
  • 举报
回复
@RequestParam(value = "ids"
super_M_r 2016-07-06
  • 打赏
  • 举报
回复
ajax中加contentType:"application/json", 这个试试

81,094

社区成员

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

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