拉取Git代码后启动项目出现Cross-Origin Request Blocked错误求助
问题场景
- 开发者A基于
web.sln打开ASP.NET Zero演示项目,推送代码至Git仓库后可正常运行Web应用 - 开发者B、C拉取代码后运行,触发CORS错误:
"Cross-Origin Request Blocked: The Same-Origin Policy disallows reading the remote resource at https://localhost:5001/AbpUserConfiguration/GetAll?d=1681805995669. (Reason: CORS request failed). Status code: (null)."
已尝试但无效的操作:
- 卸载第三方杀毒软件
- 在
services.AddCors()中添加.AllowAnyOrigin()
文件对比无差异,仅拉取代码后出现问题。
排查方向及解决方案
1. 本地开发配置文件未被Git同步
ASP.NET Zero默认会将launchSettings.json、appsettings.Development.json这类本地配置文件加入.gitignore,不会推送到仓库:
launchSettings.json:控制后端的启动端口、HTTPS配置appsettings.Development.json:包含App:CorsOrigins等核心跨域配置
开发者A本地已配置好匹配前端的跨域源和端口,但这些配置未同步到Git,导致B、C拉取后使用默认配置,出现源/端口不匹配的CORS错误。
处理步骤:
- 查看项目根目录的
.gitignore,确认上述两个文件是否在忽略列表中 - 若需共享开发配置,可从
.gitignore中移除对应文件后重新推送;或创建appsettings.Development.Template.json模板文件,让B、C复制后修改为本地适配的配置 - 让B、C检查
appsettings.Development.json中的App:CorsOrigins项,确保包含前端实际运行的地址(例如"http://localhost:3000,https://localhost:3001") - 核对
launchSettings.json中的后端端口,确保与前端请求的https://localhost:5001一致
2. 本地HTTPS证书未信任
开发者A已信任ASP.NET Core的开发HTTPS证书,但B、C拉取代码后未完成证书信任操作,导致浏览器因HTTPS连接失败间接触发CORS错误。
处理步骤:
- B、C打开命令行,进入项目目录执行:
dotnet dev-certs https --trust
- 执行完成后重启浏览器再测试
3. 前端API地址与后端端口不匹配
前端项目的环境配置中硬编码的后端API地址,与B、C本地运行的后端端口不一致(比如前端写死https://localhost:5001,但后端实际运行在5000),导致跨域请求失败。
处理步骤:
- 检查前端项目的开发环境配置文件(如
.env.development),确认API地址与后端实际运行端口一致 - 若后端使用随机端口,修改
launchSettings.json固定后端端口为5001
内容的提问来源于stack exchange,提问作者Comfortable_Onion
相关产品推荐
相关产品推荐

