前端json格式数据发送到SpringMVC 服务端

POST …415 (Unsupported Media Type)
在运行程序时,检查了JSP页面以及后端接收无数遍之后,都没有发现到底是哪里出了问题。很苦逼的到网络上搜索结果,查了很多,也根据网上查的资料更改过很多遍,均无效。直到看到这篇博客之后,并且按照上面的解决方法去执行,才解决了我的这个问题。
重点内容

  <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-databind</artifactId>
       <version>2.7.4</version>
  </dependency>

如下贴出我的代码供大家参考:
前端代码:

<script type="text/javascript">
        function upjson1(){
         var dataStr = {"username":$("#username").val(),"password":$("#password").val()};
            console.log(dataStr.username);
            console.log(dataStr.password);
            $.ajax({
                url:"getjson/getjson1",
                async:false,
                dataType:"text",
                type:"POST",
                data:JSON.stringify(dataStr),
                contentType:"application/json",
                success:function(data){
                    alert(data);
                },
                error:function(){
                    alert("失败");
                }
            });
    }
</script>
    <form id="formid">
        姓名:<input id="username" name="username" type="text" /><br />
        密码:<input id="password" name="password" type="password" />
        <br />
        <input type="button" onClick="upjson1();" value="提交json1" />
        <input type="reset" value="重置" />
    </form>

后端代码:

@RequestMapping(value = "/getjson1",method = RequestMethod.POST)
    @ResponseBody
    public Map getuser1(@RequestBody User users) {
        Map<String, String> map = new HashMap<String, String>();
        map.put("username", users.getUsername());
        map.put("pw", users.getPassword());
        System.out.println("username:"+users.getUsername());
        System.out.println("password:"+users.getPassword());
        return map;
    }

重点内容

一.@RequestBody 接收的是json字符串,而不是json对象。所以需要注意传过来的是json对象还是json字符串。

二.json总结
JSON字符串:
var str1 = ‘{ “name”: “haorooms”, “sex”: “man” }’;
JSON对象:
var str2 = { “name”: “haorooms”, “sex”: “man” };

  1. JSON对象转化为JSON字符串
    可以运用 toJSONString()或者全局要领 JSON.stringify()将JSON对象转化为JSON字符串。
    例如:
    var last=obj.toJSONString(); //将JSON对象转化为JSON字符
    或者
    var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
    alert(last);
  2. JSON字符串转换为JSON对象
    var obj = eval(‘(’ + str + ‘)’);
    或者
    var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
    或者
    var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
    然后,就可以这样读取:
    Alert(obj.name);
    Alert(obj.sex);

猜你喜欢

转载自blog.csdn.net/Ldabaicai/article/details/75331872
今日推荐