Maison > interface Web > js tutoriel > Comment corriger les erreurs de code d'état « 0 » dans les requêtes Spring Boot AJAX avec Spring Security ?

Comment corriger les erreurs de code d'état « 0 » dans les requêtes Spring Boot AJAX avec Spring Security ?

Patricia Arquette
Libérer: 2024-11-30 17:18:12
original
332 Les gens l'ont consulté

How to Fix

Comment résoudre les problèmes CORS avec Spring Boot et Spring Security

La configuration CORS (Cross-Origin Resource Sharing) est essentielle pour activer les requêtes d’origine dans les applications Spring Boot. Cependant, lors de l'utilisation de Spring Security avec la prise en charge CORS, des réponses incorrectes du serveur peuvent survenir en raison des restrictions du navigateur.

Problème :

Lors de l'exécution d'une requête AJAX avec Spring Boot et Spring Security, un objet XMLHttpRequest peut recevoir un code d'état "0" avec un corps de réponse vide au lieu d'un code d'état HTTP approprié comme 401.

Cause :

Ce problème résulte d'un conflit entre le comportement de redirection de Spring Security pendant le processus d'authentification et l'absence d'en-têtes CORS dans la requête initiale.

Solution :

Spring Security exploite désormais Spring MVC CORS soutien. Pour résoudre ce problème :

  1. Activer la prise en charge Spring Security CORS :
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors();
    }
}
Copier après la connexion
  1. Configuration globale CORS (facultatif) :

Si vous le souhaitez, vous pouvez configurer des règles CORS globales à l'aide d'un CorsConfigurationSource 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;
    }
}
Copier après la connexion

En activant la prise en charge de Spring Security CORS, il exploitera la configuration CORS existante dans Spring MVC et garantira que les en-têtes CORS appropriés sont ajoutés aux réponses.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal