rest风格 jquery ajax前台传输data control 方法中加入 @RequestBody 会报415的错误

这是我jsp界面的 jquery ajax 传输的代码

<script type="text/javascript">
    /*  alert("浏览器当前窗口可视区域宽度" + $(window).width());  */
    function sendJson(){
        var data={uname: $('#uname').val(),upwd: $('#upwd').val()};
        $.ajax({
            type :'post',
            url :'${pageContext.request.contextPath}/myLogin',
            contentType : 'application/json',
            data:JSON.stringify(data),
            success : function(result) {
                var back=eval('('+result+')');
                if(back.msg){
                    alert("登录成功");
                    window.location.href = 'login';
                }else{
                    //alert($("#form1").serialize());
                    alert("登录失败");
                }
            }
        });
    }

这是 control控制层的内容

    @RequestMapping("/myLogin")
    @ResponseBody
    public String myLogin(@RequestBody UseInfo useInfo,HttpServletRequest request)
    {
        JSONObject back = new JSONObject();
        boolean b=false;
        if("success".equals(LoginSer.login(useInfo))){
            b=true;
        }else{
            b=false;
        }
        back.put("msg",b);
        return back.toString();
    }

项目要求:以AJAX的形式完成登录与注册
2.加入拦截器
3.完成rest接口形式的登录与注册

**
springmvc添加配置、注解;
pom.xml添加jackson包引用;
Ajax请求时设置Content-Type为application/json
发送的请求内容不要转成JSON对象,直接发送JSON字符串即可 这些都配置了**
参照大佬的博客
http://blog.csdn.net/yixiaoping/article/details/45281721
修改 依然415错误

最后我找到 一种方法 就是 改变 jsp界面的内容 control层不再写 requestBody

    contentType:"application/x-www-form-urlencoded;charset=utf-8", 
            data:$("#form1").serialize(),

contentType 和data 改变一下 data直接 提交表单

猜你喜欢

转载自blog.csdn.net/qq_36501425/article/details/78491139