出现415错误是因为解析json时出现了错误,通过排查几点就能解决。

 

样例:

<script>
function requestByJson() {

var datatest = {"id":0,"username":"kinome","password":"pwd"};

$.ajax({

type : 'post',

url : '${pageContext.request.contextPath}/updateUserInfo.action',

dataType:"json",

//设置contentType类型为json

contentType : 'application/json;charset=utf-8',

//json数据

data : JSON.stringify(datatest),

//请求成功后的回调函数

success : function(data) {

alert(data.id+" "+data.username+" "+data.password);

}

});

}
</script>

 

必须设置:

dataType:"json"
contentType : 'application/json;charset=utf-8'
data : JSON.stringify(存放json的变量) // 这里存在一个对象的问题,所以需要封装起来使用

 

 

controller方面:

springmvc 使用jq传递json数据时出现415错误_xml

必须配置: consumes = "application/json" 用来接收json数据

(按照上图的编写方式就能正常接收并返回json数据)

 

 

spring所有依赖版本: 4.1.7.RELEASE

spring-servlet.xml 必须配置 <mvc:annotation-driven /> 用来进行自动注册并加载jackson相关文件

pom.xml必须配置jackson相关依赖,且 (重点)spring版本和jackson版本如果不兼容也会导致无法解析json,进而提示415错误

<!--jackson相关依赖 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.5.4</version>
</dependency>
成功返回json数据并通过jq的回调函数执行:

springmvc 使用jq传递json数据时出现415错误_json数据_02