美文网首页JQuery
jquery与Spring @RequestBody注解的问题

jquery与Spring @RequestBody注解的问题

作者: java小杨 | 来源:发表于2018-12-18 22:12 被阅读1次

    由于jquery的get post请求 默认的contentType为:application/x-www-form-urlencoded;charset=UTF-8’,而我写的Java 接口的参数习惯性的写成了(@Request Object obj),这个时候前端报错error: "Unsupported Media Type"

    message: "Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported"

    path: "/user/login"

    status: 415

    timestamp: "2018-12-18T13:59:07.603+0000",

    头疼了很久,开始的时候通过在ajxa请求上添加contentType再将data转换成json,代码如图

    $("#a").click(function () {

        $.ajax({

            url:"/user/login",

            **data:JSON.stringify(data),**

            dataType:"json",

            type:"post",

            **headers: {

                "Content-Type": "application/json; charset=utf-8"

            },**//此处可以不加headers,直接属性contentType

            success:function (e) {

                console.log("111");

            }

        })

    })

    ,虽然这个post请求成功,但在下百思不得其解,之前的项目都没有这个问题,于是上网查了查,发现@RequestBoby这个请求一般用来处理非Content-Type: application/x-www-form-urlencoded编码格式的数据。

    也就是说这个注解与jquery默认都contentType不符合,这个时候我尝试将(@Request Object object)的@RequestBody注解去掉,改成了(Object obj),

    然后使用jquery默认的post请求,即:`$.post(url,data,function)`,请求成功。

    由于本人一直的项目是前后端分离,前端项目做的少,遇到这个问题,自己琢磨了几个小时,分享出来,希望对大家有帮助

    相关文章

      网友评论

        本文标题:jquery与Spring @RequestBody注解的问题

        本文链接:https://www.haomeiwen.com/subject/wlprkqtx.html