SpringBoot 백 엔 드 크로스 도 메 인 문제 해결

1905 단어 springboot
서버 는 SpringBoot 프레임 워 크 를 핵심 으로 하고 첫 페이지 로 전송 하 는 것 을 제외 하고 RESTful 인터페이스 만 제공 하 며 Json 형식 메 시 지 를 통 해 상호작용 을 한다.
전단 은 Vue 온 가족 통 을 핵심 으로 하여 SPA 단일 페이지 응용 을 실현 하고 ajax 방식 으로 서버 와 통신 합 니 다.
전후 단 분리 개발 로 두 프로젝트 를 만 들 고 npm run build 패키지 프로젝트 (복사) 프로젝트 를 통 해 통합 합 니 다.
크로스 필드: 실제 개발 과정 에서 크로스 필드 문 제 는 해결 하기 쉽 지 않 은 것 을 발견 했다. Springboot 안전 제어 프레임 워 크 는 Securtiy 를 사 용 했 기 때문에 그의 신분 인증 은 JSESSIONID, axios 프레임 워 크 는 기본적으로 쿠키 를 보 내지 않 기 때문에 axios 설정 에 추가 해 야 합 니 다.
axios.defaults.withCredentials = true

 
그러나 크로스 도 메 인 정책 문제 로 인해 Springboot 백 엔 드 크로스 도 메 인 설정 도 수정 해 야 합 니 다. 
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
 
/**
 * @author Administrator
 * @create 2018/3/12-15:17
 * @DESCRIPTION       
 */
@Configuration
public class CorsConfig {
    /**
             
          
           (post、get )
     */
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        // // addAllowedOrigin      *     allowCredential   ,             
        corsConfiguration.addAllowedOrigin("http://localhost:8000");//       
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        // allowCredential     true
        corsConfiguration.setAllowCredentials(true);
        return corsConfiguration;
    }
 
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig());
        return new CorsFilter(source);
    }
}

좋은 웹페이지 즐겨찾기