Spring bootがまとめたクロスドメイン処理corsの方法


背景
今やっている多くのプロジェクトは全部前後で分離されています。これはよくある問題を引き出します。私たちのページとインターフェースはそれぞれのドメイン名の下にあります。ajaxを通じてバックエンドインターフェースを訪問すると、国境を越えた問題が発生します。このような問題はどう解決しますか?普通はcorsとjsonpの二つの案です。Springはcorsの構成を簡略化しました。次に、その提供されたcorsを見てみます。
ドメイン別問題の説明
Web開発ではしばしばクロスドメイン問題が発生します。解決策はjsonp、iframe、CORSなどがあります。
CORSはJSONPと比較します。
1、JSONPはGET要求しか実現できません。CORSはすべてのタイプのHTTP要求をサポートします。
2、CORSを使用して、開発者は普通のXMLHttpRequestを使って要求とデータを取得できます。JSONPよりもっと良いエラー処理があります。
3、JSONPは主に古いブラウザによって支持されています。彼らは往々にしてCORSを支持しないが、大多数の現代ブラウザはCORSを支持しています。
WebMvcConfigurオブジェクト
私たちはWebMvcConfigurオブジェクトを初期化して、私たちのcosマッピングを構成することができます。

@Configuration
public class CorsCongiguration {
  @Bean
  public WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurerAdapter() {
      @Override
      public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/api/**"); //               
        // .allowedOrigins("http://domain2.com")//      
        // .allowedMethods("PUT", "DELETE")
        // .allowedHeaders("header1", "header2", "header3")
        // .exposedHeaders("header1", "header2")
        // .allowCredentials(false).maxAge(3600);
      }
    };
  }
}
WebMvcConfigrer Adapterを継承します。
この方法は上の方法と似ています。

@Configuration
@EnableWebMvc
public class CorsConfiguration_2 extends WebMvcConfigurerAdapter {

  @Override
  public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/api/**");
  }
}
cors Filter
この方式は今はあまり使われていません。

@Component
@EnableWebMvc
public class CorsFilterCongiguration extends CorsFilter {

  public CorsFilterCongiguration(CorsConfigurationSource configSource) {
    super(configSource);
  }

  @Bean
  public FilterRegistrationBean corsFilter() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    CorsConfiguration config = new CorsConfiguration();
    config.setAllowCredentials(true);
    config.addAllowedOrigin("*");
//    config.addAllowedOrigin("http://domain1.com");
    config.addAllowedHeader("*");
    config.addAllowedMethod("*");
    source.registerCorsConfiguration("/api/**", config);
    FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
    bean.setOrder(0); //      Filter  
    return bean;
  }

}

以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。