So lösen Sie CORS-Probleme mit Spring Boot und Spring Security
Die Konfiguration von CORS (Cross-Origin Resource Sharing) ist wichtig, um Cross-Origin Resource Sharing zu ermöglichen. Ursprungsanforderungen in Spring Boot-Anwendungen. Bei Verwendung von Spring Security mit CORS-Unterstützung kann es jedoch aufgrund von Browsereinschränkungen zu falschen Serverantworten kommen.
Problem:
Beim Ausführen einer AJAX-Anfrage sowohl mit Spring Boot als auch Spring Security kann ein XMLHttpRequest-Objekt einen „0“-Statuscode mit einem leeren Antworttext anstelle eines richtigen HTTP-Statuscodes wie erhalten 401.
Ursache:
Dieses Problem entsteht durch einen Konflikt zwischen dem Umleitungsverhalten von Spring Security während des Authentifizierungsprozesses und dem Fehlen von CORS-Headern in der ersten Anfrage.
Lösung:
Spring Security nutzt jetzt Spring MVC CORS Unterstützung. Um dieses Problem zu beheben:
@Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.cors(); } }
Bei Bedarf können Sie globale CORS-Regeln mithilfe einer CorsConfigurationSource konfigurieren bean:
@Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.cors().and(); } @Bean CorsConfigurationSource corsConfigurationSource() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", new CorsConfiguration().applyPermitDefaultValues()); return source; } }
Durch die Aktivierung der Spring Security CORS-Unterstützung wird die vorhandene CORS-Konfiguration in Spring MVC genutzt und sichergestellt, dass den Antworten die richtigen CORS-Header hinzugefügt werden.
Das obige ist der detaillierte Inhalt vonWie behebe ich „0'-Statuscodefehler in Spring Boot AJAX-Anfragen mit Spring Security?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!