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

局域网其他设备访问Angular应用报错误0,仅宿主设备正常如何解决?

问题解决方法

你当前的Spring Boot CORS配置仅将固定的几个前端访问源加入了允许列表,局域网内其他不在列表内的设备发起请求时,会被跨域规则拦截,因此只能加载前端静态资源、无法获取后端接口数据。

场景1:本地调试阶段使用(不建议生产环境配置)

直接允许所有跨域请求,替换原有CORS配置代码即可:

@Bean
public CorsFilter corsFilter() {
    UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
    CorsConfiguration corsConfiguration = new CorsConfiguration();
    corsConfiguration.setAllowCredentials(true);
    // 允许所有访问源
    corsConfiguration.addAllowedOriginPattern("*");
    corsConfiguration.setAllowedHeaders(Arrays.asList("Origin", "Access-Control-Allow-Origin", "Content-Type",
            "Accept", "Jwt-Token", "Authorization", "Origin, Accept", "X-Requested-With",
            "Access-Control-Request-Method", "Access-Control-Request-Headers"));
    corsConfiguration.setExposedHeaders(Arrays.asList("Origin", "Content-Type", "Accept", "Jwt-Token", "Authorization",
            "Access-Control-Allow-Origin", "Access-Control-Allow-Credentials", "Filename"));
    corsConfiguration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"));
    urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
    return new CorsFilter(urlBasedCorsConfigurationSource);
}

注意:开启setAllowCredentials(true)的前提下,不能直接使用setAllowedOrigins("*"),必须用addAllowedOriginPattern("*")配置才会生效。

场景2:生产环境使用

如果需要限制访问源保证安全,可以将你局域网段所有可能的前端访问源,按http://IP:端口的格式枚举添加到allowedOrigins列表中;如果同网段设备较多,也可以添加网段通配规则比如http://192.168.0.*:80到允许列表。


额外排查项

如果修改CORS配置后依然无法访问,检查Spring Boot服务启动时是否绑定了127.0.0.1,需要修改启动配置将服务绑定到0.0.0.0,保证局域网内设备可以正常访问到后端端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:09:01