Unrecognized token 'ename': was expecting ('true', 'false' or 'null')(ajax中data动态获取数据)

转载自:http://blog.csdn.net/javaee_sunny/article/details/52576710
1.报错现象:

页面报错截图: 
页面报错截图 
后台报错截图: 
后台报错截图

2.源代码:

jsp代码:

    $.ajax({ 
              type:"POST", 
              url:"${pageContext.request.contextPath }/empController/test", 
              contentType:"application/json;charset=utf-8",  //发送信息至服务器时内容编码类型。             

              data:{'ename':$('#ename').val()},
              dataType:'json',  
              success:function(data){ 
                        alert("保存....");
                      },
              error:function(data) { 
                        alert("失败...");
                    } 
          }); 

Controller代码:

    @ResponseBody
    @RequestMapping("/test")
    public Emp testjsp(@RequestBody Emp emp){
        System.out.println(emp.getEname()+"***************");
        return emp;
    }
3.问题分析:

返回数据格式不规范.当dataType指定为json后,1.4+以上的jquery版本对json格式要求更加严格.如果不是严格的json格式,就不能正常执行success回调函数.

JSON格式总结下,详细的去json.org 查看。    
1)键名称:用双引号 括起    
2)字符串:用使用双引号 括起 
3)数字,布尔类型不需要 使用双引号 括起

4.解决方案:

按照上方严格的json格式,将动态获取的data参数修改为如下格式,即可:

data:"{\"ename\":\""+$("#ename").val()+"\"}",

不是动态获取数据时,格式如下:(注意比较区别)

data:'{"ename":"tom"}',
5.参考文章:

[1] ajax不执行success回调而是执行error回调

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值