Axios 给出“请求失败,状态代码为 422”,即使正文字段不为空或为空

问题描述 投票:0回答:0

当我向我的 Spring Boot REST API 发布注册请求时,出现“请求失败,状态代码为 422”错误。返回的错误似乎与空字段或空白字段有关,如下所示:

"{"status":422,"message":"验证错误。检查“错误”字段以获取详细信息","errors":[{"field":"firstName","message":"不能为空"},{"field":"password","message":"必须不能为空"},{"field":"lastName","message":"不能为空"},{"field":"username","message":"不能为空"}]}"

但是,数据没问题,传给了axios参数的body。下面是相关的方法,可能POST前的数据格式有问题:

service.js:

export const PostWithoutAuth = (url, body) => {
  const request = axios.post(url, {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify(body),
  });
  return request;
  // return request.then(response => response.data)
};

还有表格...

form.jsx:

const handleSubmit = (event) => {
    event.preventDefault();

    PostWithoutAuth("/auth/register", {
      firstName: firstName,
      lastName: lastName,
      username: username,
      password: password,
      roles: null
    })
      .then((res) => res.json())
      .then((result) => {

          localStorage.setItem("tokenKey", result.data.accessToken);
          localStorage.setItem("refreshKey", result.data.refreshToken);
          localStorage.setItem("currentUser", result.data.userId);
          localStorage.setItem("username", result.data.username);
      })
      .catch((error) => {
        setAlert(error.message, "error");
      });
  };

关于这个问题有什么想法吗?

javascript reactjs post react-hooks axios
© www.soinside.com 2019 - 2024. All rights reserved.