ajax发送json数据到后台问题的格式问题(踩坑)

1 篇文章 0 订阅
1 篇文章 0 订阅
本文探讨了使用Ajax发送JSON数据到SpringMVC后台的两种方式。第一种是通过`@RequestBody`接收JSON字符串,前端需将表单对象转换为JSON;第二种是直接使用实体类接收,前端直接发送表单对象。关键在于前后端数据类型匹配,避免解析错误。
摘要由CSDN通过智能技术生成

使用ajax发送json数据到SpringMVC后台问题

**from_data.field为form表单对象 **

情况一 :使用@RequestBody

前端ajax:

		$.ajax({
                url:"${pageContext.request.contextPath}/validate",
                type: "POST",
                <!-- from_data.field为form表单对象 -->
                <!-- 如果指定了 contentType 为json数据,需要把from_data.field转换为字符串-->
                data:JSON.stringify(from_data.field),
                contentType: "application/json;charset=UTF-8",
                
                success: function (data) {
					alter("成功");
                },//响应成功后的回调函数
                error: function (data) {
					alter("调用接口失败");
                }
            })

java代码

    @RequestMapping("/validate")
    @ResponseBody
    public String validate(@RequestBody Admin admin){
        System.out.println(admin);
        return "0";
    }

总结:@RequestBody 接收的为json的字符串

情况二 :使用直接使用实体类接收

前端ajax:

		$.ajax({
                url:"${pageContext.request.contextPath}/validate",
                type: "POST",
                <!-- from_data.field为form表单对象 -->
                <!-- 没有指定 contentType 属性,直接from_data.field对象-->
                data:from_data.field,
                <!-- contentType: "application/json;charset=UTF-8",-->
                success: function (data) {
					alter("成功");
                },//响应成功后的回调函数
                error: function (data) {
					alter("调用接口失败");
                }
            })

java代码

    @RequestMapping("/validate")
    @ResponseBody
    public String validate(Admin admin){
        System.out.println(admin);
        return "0";
    }

总结:前端发送对象,后端也使用对象接收

当后台添加@RequestBody,前端发送对象时,会出现由于被认为是客户端对错误(例如:畸形的请求语法、无效的请求信息帧或者虚拟的请求的错误,所以两种情况要对应。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值