前端ajax请求java后台,后台返回给前台500错误,返回结果为

{"result":false,"code":500,"info":"JSON parse error: Unrecognized token 'username': was expecting ('true', 'false' or 'null');
 nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'username': was expecting ('true', 'false' or 'null')\n at [Source: (PushbackInputStream); line: 1, column: 10]"}

前端请求是这样写的:

    $.ajax({
      type: "POST",   //提交的方法
      url:"/ta/user/login", //提交的地址
      headers: {
        'Content-Type': 'application/json;charset=utf-8',
      },
      data:{"username":$("#username").val(),"password":$("#password").val()},
      async: false,
      error: function(request) {  //失败的话
      },
      success: function(result) {  //成功

后台接口是这样写的:

    @PostMapping(value="user/login")
	public Map<String,Object> login(HttpServletRequest request, @RequestBody Map<String,Object> param) {

原因在于前端传给后台的参数不是标准的JSON格式,这里只需要把参数json字符串化即可:

    data:JSON.stringify({"username":$("#username").val(),"password":$("#password").val()}),

利用JSON.stringify字符串化一下参数,问题解决。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐