时间:2021-05-19
问题
今天遇到一个问题,代码如下
java:
@PostMapping(value = "/method") @ResponseBody public Object method(Integer id,String audit_content) { return null; }js:
var data = {id:7,audit_content:"11111111111111111111a1"}; $.ajax({ type: "POST", url: "/method", data:data, contentType: "application/json;charset=utf-8", success: function (result) { $("#my_result").html(JSON.stringify(result)); }, error: function () { console.log("shibai") } });这样的话,java后台的id和audit_content永远都是null;就算用HttpServletRequest的getParameter("id")也一样没用。
解决
原因是js代码里的contentType: "application/json;charset=utf-8",删掉或者改成默认的"contentType: application/x-www-form-urlencoded"就行了。
拓展
那么什么时候用contentType: "application/json;charset=utf-8"呢,后台不是接收单个字符串,而是一个实体类时就用它了。
java代码:
@PostMapping("/method2") @ResponseBody @Transactional public Object method2(@RequestBody Body body) { return null; }js代码:
var data = {"id": i, "show_status":0}; $.ajax({ type: "POST", url: "/method2", data: JSON.stringify(data), contentType: "application/json;charset=utf-8", success: function (result) { $("#my_result").html(JSON.stringify(result)); }, error: function () { console.log("shibai") } });这样java后台会得到一个有id和show_status属性的Body类,注意一定要JSON.stringify(data),不能直接传data。
以上这篇解决SpringMVC接收不到ajaxPOST参数的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
写此文的背景:在学习使用angular的$http.post()提交数据时,后台接收不到参数值,于是查阅了相关资料,寻找解决办法。写此文的目的:通过上面提到的文
qq下载不了文件的解决方法: 1、QQ版本的问题,更新软件就好了。 2、可能是网络限制,如果是QQ传输文件,接收不到那可以把安全等级降低,就可以接收到了。
在cordova开发的时候使用到了$http的post方法,传递的参数服务端怎么都接收不到,搜索了下,发现使用AngularJS通过POST传递参数还是需要设置
前言最近在使用SpringMVC接收参数的时候,碰到个同名参数绑定的问题,参考了好几篇文章才解决问题,所以自己在这里总结一下,分享出来供大家参考学习,话不多说了
问题描述最近在做微信小程序,用的springboot做后端,突然发现客户端发送post请求的时候服务端接收不到参数。问题简化之后如下:微信小程序端:在页面放一个