CORS

2023. 1. 12. 21:06Study/오류

728x90

Cross-Origin Resource Sharing 처음 리소스를 제공한 도메인이 현재 요청하려는 도메인과 다르더라도 요청을 허락해 주는 웹 보안 방침.

 

프론트 서버 localhost:3000, 백엔드 서버 localhost:8080 으로 쓰고 있을 때 프론트 서버에서 백엔드에 데이터를 요구하지만 백엔드 서버에서는 요청의 Origin이 localhost:8080이 아닌 localhost:3000이기에 거부하게 된다.

 

백엔드에서 CORS 방침을 설정할 수 있는데

package com.example.demo.config;

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 WebMvcConfig implements WebMvcConfigurer{
	
	private final long MAX_AGE_SECS = 3600;

	@Override
	public void addCorsMappings(CorsRegistry registry) {
		// TODO Auto-generated method stub
		//모든 경로에 대해
		registry.addMapping("/**")
		//origin이 http>localhost:3000에 대해
		.allowedOrigins("http://localhost:3000")
		//get post put patch delete options 를 허용
		.allowedMethods("GET","POST","PUT","PATCH","DELETE","OPTIONS")
		//모든 헤더와 인증에 관한 정보(ccredentials)도 허용
		.allowedHeaders("*")
		.allowCredentials(true)
		.maxAge(MAX_AGE_SECS);
	}
	
	
	
}

allowedOrigins로 허용을 명시해줄 수 있다.

728x90

'Study > 오류' 카테고리의 다른 글

wsl 명령어가 안 될 때  (0) 2023.01.24
ubuntu 설치 오류  (0) 2023.01.24