Axios post请求未发送数据或未收到响应



这是我第一次尝试进行基本身份验证,似乎没有任何工作。Axios post没有发送数据/控制器没有返回响应。我找不到我到底在哪里出了问题,但我想知道我的http post请求的主体是否与requestbody匹配,或者我需要改变什么才能让用户存储库在数据库中保存表单数据?

const Login = () => {
const [registration, setRegistration] = useState("true");
const [email, setEmail] = useState("");
const [regPwd, setRegPwd] = useState("");
const [regUsername, setRegUsername] = useState("");
const [logUsername, setLogUsername] = useState("");
const [logPwd, setLogPwd] = useState("");
const redirect = useNavigate();
const handleRegSubmit = async (e) => {
e.preventDefault();
const registerDTO = {
email: email,
username: regUsername,
password: regPwd
}
try {
const response = await axios.post('http://localhost:8080/registration',
{registerDTO} )
if (response.status === 200) {
redirect("/user/${username}")
} else {
setEmail("")
setRegUsername("")
setRegPwd("")
}
}
catch (error) {
console.log(error)
}
}
const handleLogSubmit = async (e) => {
e.preventDefault();
const logUser = {
username: logUsername,
password: logPwd
}
try {
const response = await axios.post('http://localhost:8080/login',
{ logUser })
if (response.status === 200) {
redirect("/user/${username}")
} else {
setLogUsername("")
setLogPwd("")
}
}
catch (error) {
console.log(error)
};   
}


Spring boot

@CrossOrigin(origins= "http://localhost:3000")
@RestController
@RequestMapping("")
public class AuthenticationController {
@Autowired
UserRepository userRepository;

@PostMapping("/register")
public ResponseEntity<Object> processRegistration(@RequestBody @Valid RegisterDTO registerDTO,
BindingResult bindingResult, HttpServletRequest request) {
if (bindingResult.hasErrors()) {
return ResponseEntity.badRequest().body("An error occurred!");
}
User existingUser = userRepository.findByUsername(registerDTO.getUsername());
if (existingUser != null) {
return ResponseEntity.badRequest().body("Username already exists!");
}

User user = new User(registerDTO.getEmail(), registerDTO.getUsername(), registerDTO.getPassword());
userRepository.save(user);
return ResponseEntity.ok().body(user);
}
@PostMapping("/login")
public ResponseEntity<Object> processLogin(@RequestBody @Valid LoginDTO loginDTO,
BindingResult bindingResult,HttpServletRequest request) {
if (bindingResult.hasErrors()) {
return ResponseEntity.badRequest().body("An error occurred!");
}
User user = userRepository.findByUsername(loginDTO.getUsername());
if (user == null) {
return ResponseEntity.badRequest().body("Username does not exist!");
}
String password = loginDTO.getPassword();
if (!user.isMatchingPassword(password)) {
return ResponseEntity.badRequest().body("Invalid password!");
}
return ResponseEntity.ok(user);
}

}

您正在发送到http://localhost:8080/registration,但将路由定义为localhost:8080/register

最新更新