java - SpringMVC控制器接收JSON字符串时,报错HTTP-415

查看:185
本文介绍了java - SpringMVC控制器接收JSON字符串时,报错HTTP-415的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

试了好长时间没有查出问题在哪

这是我的前端代码

<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="/html/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
    function test() {
        var saveDataAry = [];
        var data1 = {"name" : "name1"};
        var data2 = {"name" : "name2"};
        saveDataAry.push(data1);
        saveDataAry.push(data2);
        $.ajax({
            type : "POST",
            url : "/jsonTest",
            dataType : "json",
            contentType : 'application/json',
            data : JSON.stringify(saveDataAry),
            success : function(data) {
                alert(data);
            },
            error : function(data) {
                alert("error");
            }
        });
    }
</script>
</head>
<body>
    <input type="button" onclick="test()" value="JSON">
</body>
</html>

这是我的后端代码

@Controller
public class JsonTest {
    @RequestMapping(value = "jsonTest", method = RequestMethod.POST)
    @ResponseBody
    public String jsonTest(@RequestBody List<Student> s) {
        return "success";
    }
}

class Student {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

浏览器提示我

POST http://localhost:8080/jsonTest 415 (Unsupported Media Type)

后台没有提示,打了个断点也没有进去

maven只依赖了spring-webmvc4.2.5和servlet-api3.1,SpringMVC本身是搭建成功的。
dispatcherservlet.xml里面是配置了<mvc:annotation-driven />

排查了有一段时间了:(
任何回复都能让我不胜感激

解决方案

我运行了你的代码,没有问题,我猜你应该没有加入 Jackson 的依赖和相关配置:

消息转换器的配置:

这篇关于java - SpringMVC控制器接收JSON字符串时,报错HTTP-415的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆