首页 前端知识 Jquery 发送 Ajax 请求,Controller 使用 @RequestBody 注解接收参数常见报错

Jquery 发送 Ajax 请求,Controller 使用 @RequestBody 注解接收参数常见报错

2024-05-12 00:05:35 前端知识 前端哥 382 331 我要收藏

后端代码

使用 @RequestBody Map<String, String> map 接受前端的参数

@RestController
@RequestMapping("/user/account/")
@RequiredArgsConstructor(onConstructor_ = {@Autowired})
public class LoginController {
    private final LoginService loginService;

    @PostMapping("token")
    public Map<String, String> getToken(@RequestBody Map<String, String> map) {
        String username = map.get("username");
        String password = map.get("password");
        return loginService.getToken(username, password);
    }
}cha

前端代码 1(X)

$.ajax({
  url: "http://127.0.0.1:8888/user/account/token/",
  type: "post",
  data: {
    username: "mike",
    password: "123456"
  },
  success(resp) {
    console.log(resp);
  },
  error(resp) {
    console.log(resp);
  }
});

导致 org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported 异常

前端代码 2(X)

OK,我手动加上 Content-Type 行了吧?

$.ajax({
  url: "http://127.0.0.1:8888/user/account/token/",
  type: "post",
  headers: {
    'Content-Type':'application/json'
  },
  data: {
    username: "mike",
    password: "123456"
  },
  success(resp) {
    console.log(resp);
  },
  error(resp) {
    console.log(resp);
  }
});

还是不行!

导致 org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unrecognized token 'username': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false') 异常

前端代码 3(√)

加上 JSON.stringify() 才行!

$.ajax({
  url: "http://127.0.0.1:8888/user/account/token/",
  type: "post",
  headers: {
    'Content-Type':'application/json'
  },
  data: JSON.stringify({
    username: "mike",
    password: "123456"
  }),
  success(resp) {
    console.log(resp);
  },
  error(resp) {
    console.log(resp);
  }
});

成功!
在这里插入图片描述

补充

如果想使用前端代码 1 的格式的话,后端使用 @RquestParam 注解接受即可。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/8232.html
标签
评论
发布的文章

JSON三种数据解析方法

2024-05-22 09:05:13

使用nvm管理(切换)node版本

2024-05-22 09:05:48

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!