首页 > web前端 > js教程 > 如何使用 Spring Security 修复 Spring Boot AJAX 请求中的'0”状态代码错误?

如何使用 Spring Security 修复 Spring Boot AJAX 请求中的'0”状态代码错误?

Patricia Arquette
发布: 2024-11-30 17:18:12
原创
332 人浏览过

How to Fix

如何使用 Spring Boot 和 Spring Security 解决 CORS 问题

配置 CORS(跨源资源共享)对于启用跨源资源共享至关重要Spring Boot 应用程序中的原始请求。但是,当使用支持 CORS 的 Spring Security 时,由于浏览器限制,可能会出现错误的服务器响应。

问题:

同时使用 Spring Boot 和 Spring Boot 执行 AJAX 请求时Spring Security,XMLHttpRequest 对象可能会收到带有空响应正文的“0”状态代码,而不是正确的 HTTP 状态代码,例如401.

原因:

此问题是由于身份验证过程中 Spring Security 的重定向行为与初始请求中缺少 CORS 标头之间的冲突而引起的。

解决方案:

现在使用 Spring Security利用 Spring MVC CORS 支持。要解决此问题:

  1. 启用 Spring Security CORS 支持:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors();
    }
}
登录后复制
  1. CORS 全局配置(可选) :

如果需要,您可以使用 CorsConfigurationSource bean 配置全局 CORS 规则:

@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;
    }
}
登录后复制

通过启用 Spring Security CORS 支持,它将利用 Spring MVC 中现有的 CORS 配置,并确保将正确的 CORS 标头添加到响应中。

以上是如何使用 Spring Security 修复 Spring Boot AJAX 请求中的'0”状态代码错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板