当我向我的 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");
});
};
关于这个问题有什么想法吗?