Mac M1上Blazor WASM项目HttpClient调用失败求助
Blazor WASM在Mac M1上调用Web API报错的排查方案
这个错误的核心原因是:GetFromJsonAsync方法期望服务器返回JSON格式数据,但实际收到的是HTML内容(以<开头,比如404/500错误页面),导致JSON解析失败。结合Windows和Mac的运行差异,具体排查方向如下:
检查API请求的基地址与端口
Windows和Mac上,Web API项目的默认启动端口可能不同。确认Blazor WASM的HttpClient基地址配置是否正确:// 查看Program.cs中的HttpClient配置 builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });同时检查Mac上Web API的实际运行地址(比如浏览器地址栏显示的端口),确保Blazor的请求地址与API的实际地址一致。
确认Web API项目已启动
在Mac的Visual Studio中,默认可能只启动Blazor WASM项目。右键解决方案 → 设置启动项目,将Web API和Blazor项目都设置为启动状态,确保两者同时运行。排查跨域配置
若Blazor和Web API运行在不同端口,需确保Web API已配置允许跨域请求:// 在Web API的Program.cs中添加CORS配置 builder.Services.AddCors(options => { options.AddPolicy("AllowBlazor", policy => { policy.WithOrigins("https://localhost:xxxx", "http://localhost:yyyy") // 替换为Blazor的实际运行地址 .AllowAnyHeader() .AllowAnyMethod(); }); }); app.UseCors("AllowBlazor");修复HTTPS证书信任问题
Mac上若未信任ASP.NET Core开发证书,可能导致请求被拦截返回错误页面。在终端执行以下命令信任证书:dotnet dev-certs https --trust执行完成后重启Visual Studio和项目。
内容的提问来源于stack exchange,提问作者Rob Bowman
相关产品推荐
相关产品推荐

