VSCode와 STS연결
vscode react-router
App.js
import axios from "axios";
const App=()=>{
const handleClick= async()=>{
const data={"num":30,"id":"kier","name":"키에르"};
const result=await axios.post("http://localhost:8383/getJson", data);
console.log(result);
}
return(
<div>
<input type="button" onClick={handleClick} value="데이터요청하기"/>
</div>
)
}
export default App;
RestBasicController.java
//값을 받는 방법1 - post형은 VO로 맵핑
//JSON형식의 데이터를 자바의 객체로 맵핑 ->@RequestBody
//{"num":30,"id":"kier","name":"키에르"}
//cors-기본적으로 서버가 다르면 요청을 거절하는데(특정 서버의 요청에 대하여 허용)
//@CrossOrigin(*) or 필터를통한 자바설정
@CrossOrigin("http://localhost:3000")
@PostMapping("/getJson")
public String getJson(@RequestBody SimpleVO vo) {
System.out.println(vo.toString());
return "success";
}
서버와 서버의 도메인이 다르면 자동으로 블락. 보안 때문에.
cors(Cross origin resources sharing -같은 서버에서만 코드를 sharing한다.)
@CrossOrigin("")으로 열 수 있다.
특정 주소만 허용할 수도 있고, *를 하면 모든 주소를 허용한다.
서버가 다르더라도 허용을 시켜주므로, 함부로 열면 안된다.
Spring Security와 JWT
API 서버 개발자라면 알아야 하는 preflight와 cors(Cross origin resources sharing)의 개념
정리를 잘해놓은 블로그를 링크합니다.
https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-CORS-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC-
%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95-%F0%9F%91%8F
'Spring Boot' 카테고리의 다른 글
230220 Spring Boot 조회 -join N:1, 1:N (0) | 2023.02.20 |
---|---|
230217 SpringBoot 카테고리 처리-1 (0) | 2023.02.17 |
230216 Spring Boot Rest API (0) | 2023.02.16 |
230214 Spring Boot 데이터베이스 연결, SQL문 실행 로그 추가 (0) | 2023.02.14 |
230214 Spring Boot Validation (0) | 2023.02.14 |