React에서 Spring Boot로 Request를 보내보자

import axios from "axios";
import React, { useState } from "react";

const SignUp = () => {
  const [requestResult, setRequestResult] = useState<string>("");
  const data = {
    userEmail: "abc123@gmail.com",
    userPassword: "abc123",
    userPasswordCheck: "abc123",
    userNickname: "abcde",
    userPhoneNumber: "010-1111-2222",
    userAddress: "대한민국 부산광역시",
    userAddressDetail: "강서구",
  };
  const handleSignUp = () => {
    axios
      .post("http://localhost:4000/api/auth/signUp", data)
      .then((response) => {
        setRequestResult("Success");
      })
      .catch((error) => {
        setRequestResult("Fail");
      });
  };
  return (
    <div>
      <h3>{requestResult}</h3>
      <button onClick={handleSignUp}>회원가입</button>
    </div>
  );
};

export default SignUp;

axios를 이용하여 localhost:4000에 요청을 성공하면 state에 저장을 하여 버튼을 눌렀을 시 상태를 화면에 출력해주는 코드이다

실행을 시켜보면 이렇게 Fail 이 뜨는 것을 볼 수 있다

여기서도 CORS 정책 에러가 뜬다 CORS를 Controller에서 설정해주자

package com.hyeonjoonpark.board_crud.Controller;

import com.hyeonjoonpark.board_crud.Dto.ResponseDto;
import com.hyeonjoonpark.board_crud.Dto.SignupDto;
import com.hyeonjoonpark.board_crud.Dto.SignupResponseDto;
import org.springframework.web.bind.annotation.*;

@CrossOrigin(originPatterns = "http://localhost:3000")
@RestController
@RequestMapping("/api/auth")
public class AuthController {
    @PostMapping("/signUp")
    public ResponseDto<SignupResponseDto> signUp(@RequestBody SignupDto requestBody) {
        System.out.println(requestBody.toString());
        return null;
    }
}

@CrossOrigin(originPatterns = "http://localhost:3000") 을 추가해주자

정상작동!!!

다음 블로그에서는 Input창을 직접 퍼블리싱 해보자

profile
Backend Developer

0개의 댓글