Penapis CORS Keselamatan Musim Bunga: Menyelesaikan masalah "Tiada Pengepala 'Kawalan-Kawalan-Benarkan-Asal'"
Penjelasan
Menambah Spring Security pada projek sedia ada boleh mencetuskan ralat "Tiada pengepala 'Access-Control-Allow-Origin'" semasa permintaan Cross-Origin Resource Sharing (CORS). Ralat ini berlaku kerana pengepala respons Access-Control-Allow-Origin tidak ditambahkan pada permintaan.
Penyelesaian
Kaedah 1:
Kemas kini kod anda untuk menggunakan sokongan CORS terbina dalam Spring Security. Tambahkan konfigurasi berikut pada aplikasi anda:
<code class="java">@Configuration public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedMethods("HEAD", "GET", "PUT", "POST", "DELETE", "PATCH"); } }</code>
Kaedah 2:
Jika anda mahukan lebih kawalan ke atas konfigurasi CORS, gunakan pendekatan berikut:
<code class="java">@Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.cors(); } @Bean public CorsConfigurationSource corsConfigurationSource() { final CorsConfiguration configuration = new CorsConfiguration(); configuration.setAllowedOrigins(ImmutableList.of("*")); configuration.setAllowedMethods(ImmutableList.of("HEAD", "GET", "POST", "PUT", "DELETE", "PATCH")); configuration.setAllowCredentials(true); configuration.setAllowedHeaders(ImmutableList.of("Authorization", "Cache-Control", "Content-Type")); final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", configuration); return source; } }</code>
Nota Tambahan:
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \"Tiada \'Access-Control-Allow-Origin\' Ada" Ralat Selepas Menambah Keselamatan Spring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!