关于springmvc用josn格式传参的时候出现的415错误,已经一下解决方法。
首先这是我的代码:
1.js以及json的
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.js"></script>
<script type="text/javascript">
function check(){
var username=document.getElementById("username").value;
var password=document.getElementById("password").value;
var url="${pageContext.request.contextPath }/testjson";
var user= JSON.stringify ({username:username,password:password});
$.ajax({
url : url,
type : "POST",
dataType: 'json',
contentType: 'application/json',
data :user,
success : function(data){
if(data!=null){
alert("您输入的用户名为:"+data.username+
"您输入的密码为"+data.password
);
return true;
}else{
return false;
}
}
});
}
</script>
<body >
<form>
用户名:<input type="text" name="username" id="username">
密码:<input type="text" name="password" id="password">
<input type="button" value="提交测试json交互" onclick=" check() ">
</form>
</body>
2.后台controller的
@RequestMapping(value = "/testjson")
@ResponseBody
public User testjson(@RequestBody User user) {
System.out.println(user);
return user;
}
注意的问题:
1.form表单中 type应该为button(稍微注意)
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.js">
这个很重要,注意路径是相对路径,用json时必须引的东西
var url="${pageContext.request.contextPath }/testjson";
url路径也是相对路径,
4.我找了3 4 个小时的bug,
我的spring版本为4.1.6,我开始传数据的时候一直报415的错误,但是百度一直是说是 contentType: ‘application/json’, 的问题,后来我才发现,我后台使用pojo类接受的数据时报了415错误,原来是
这三个包的版本不对,我换成了2.9.6的。
后台就ok了
ackson-core/2.9.6.jar的下载地址,其他的二个包可以跟着找。
https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.9.6/