You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot登录后Chrome出现GET /sw.js不匹配POST /login错误

问题原因

sw.js是PWA(渐进式网页应用)的Service Worker脚本,Chrome浏览器如果之前在当前域名下注册过Service Worker,会自动发起GET /sw.js请求更新脚本,而你当前的Spring Security配置没有将该路径加入免认证规则,请求被拦截后触发错误跳转,才会出现路径匹配错误的日志。Firefox没有对应Service Worker的注册记录,不会主动发起该请求,所以运行正常。

修复方案

方案1:不需要PWA功能

直接清理Chrome浏览器的残留配置即可:

  • 打开Chrome访问当前站点,按F12打开开发者工具
  • 切换到「Application」标签,左侧找到「Service Workers」
  • 删除当前域名下注册的Service Worker,同时清理站点缓存后重新测试即可。

方案2:需要保留PWA功能

两步修改:

  1. 修改Spring Security配置类,将sw.js和workbox相关静态资源加入免认证路径:
@Override
protected void configure(HttpSecurity http) throws Exception {
    http
            .authorizeRequests()
            // 新增sw.js和workbox相关资源的免认证规则
            .antMatchers("/css/**", "/js/**", "/images/**", "/sw.js", "/workbox-*.js").permitAll()
            .anyRequest().fullyAuthenticated()
            .and()
            .formLogin()
                .loginPage("/login") //自定义登录页
                .permitAll(); // 允许所有用户访问/login页面
}
  1. 将对应的sw.js和workbox-*.js文件放入项目静态资源目录(默认是src/main/resources/static),保证静态资源可正常访问即可。

内容的提问来源于stack exchange,提问作者Anuska

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:54:02