SpringBoot로 DB기반 API서버를 만들고 Flutter로 가져와서 내용을 뿌려주도록 구현했다.
다하고 힘차게 실행을 시켰으나..
Access to XMLHttpRequest at 'http://localhost:1000/mypage/org/1' from origin 'http://localhost:60229' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
어림도없지 바ㅡ로 CORS문제 직면.
해결을 위한 몇가지 방법들이 있다.
chrome.dart파일 수정
실패.

CrossOrigin 어노테이션 추가
@CrossOrigin(origin = "https://localhost:1000")
는 또실패.
HTTP 응답에 Access-Control-Allow-Origin 헤더 추가
@GetMapping("/dntresult")
public List<Donation> myDnt(@PathVariable("userid") Long userid, HttpServletResponse response) {
// Access-Control-Allow-Origin 헤더를 추가
response.setHeader("Access-Control-Allow-Origin", "*");
return mypageService.myDnt(userid);
이러니까 성공했다.
그런데 이 방법은 한가지 문제가 있다.
귀찮다. 하나하나 다 써줘야한다.
한번에 할 수 있는 방법을 찾았다.
CorsConfig클래스 추가
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") // 모든 엔드포인트에 대해 CORS 정책 적용
.allowedOrigins("*") // 모든 도메인에서의 요청 허용
.allowedMethods("GET", "POST", "PUT", "DELETE"); // 허용할 HTTP 메서드 지정
}
}
config 패키지에 CorsConfig 클래스를 추가했다. (@Configuration필수)
이거 한방으로 끝났다.
굳.